{"push_id":832823221,"size":37,"distinct_size":1,"ref":"refs/heads/develop","head":"36f3525b3a39c0c286aa1947d1e13f2601d3e4c1","before":"8b0e5668df82246fa2ec6ac5d5dc0916d6d6f9a5","commits":[{"sha":"e237d7e8e7c44e7b42adcf5e3efc3ebb7343bf73","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Handle Ctrl-C inside cmdloop, don't exit\n\nWith a little do_sleep that sleeps 5 seconds as test:\n\nINFO: Application Name: M2EE Test\nm2ee(knorrie): sleep\n^C                   <- ^C\nm2ee(knorrie):       <- ^C\nm2ee(knorrie):       <- ^C\nm2ee(knorrie): exit  <- ^D\n\nPreviously, when interrupting something with ^C, the whole m2ee program\nwould exit.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/e237d7e8e7c44e7b42adcf5e3efc3ebb7343bf73"},{"sha":"07e036a472ee78749177f603c3320674ad938e59","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Introduce exceptions for M2EE Admin API errors\n\nWrap the CLI onecmd, so exceptions can be dealt with nicely. This\nreplaces a lot of explicit checking in every CLI function to see if the\napplication is running, before doing the actual request. The redundant\ncode is not yet removed, so currently there's a bunch of duplicated\nchecks.\n\nDon't throw M2EEAdminException(action, response) yet in case\nresponse['result'] != 0 because of calling functions that do their own\nhandling of errors and need to be rewritten first.\n\nSubclass from object, to get a \"new style\" class, in which super works.\n\nNext:\n - Remove the M2EEResponse object, and just return the feedback object\n   directly from client calls. When the result integer is not 0, throw a\n   M2EEAdminException. This means updating all calls to client methods\n   that now also do get_feedback(). This also means that calling\n   functions which want to do their own error handling have to catch the\n   new M2EEAdminException instead of looking at the result integer.\n - Remove _report_not_running() and client.ping(), checking this all the\n   time must be replaced by just trying to execute the happy flow and\n   handling exceptions if something breaks\n - Augment M2EEAdminNotAvailable with M2EEAdminNotRunning so calling\n   code does not have to figure this out itself (e.g. what onecmd is\n   doing now using check_alive)","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/07e036a472ee78749177f603c3320674ad938e59"},{"sha":"76faffd85dc1fa55a726c91249fdf962768be752","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Get rid of _report_not_running\n\nIt's handled in onecmd now.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/76faffd85dc1fa55a726c91249fdf962768be752"},{"sha":"46b9e77fe04b4f6e04c557e283a272a866f1957c","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Bye bye M2EEResponse, it's feedback or exception now\n\nInstead of returning a M2EEResponse object that has to be inspected for\nerrors all the time, just return the feedback data. If the happy flow is\nbroken because an error occured, raise an M2EEAdminException instead,\nthat now contains all information that was previously available in the\nM2EEResponse object.\n\nNext commits will adapt the client calls to this new behaviour.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/46b9e77fe04b4f6e04c557e283a272a866f1957c"},{"sha":"897b27612f55cf528b6ca0ad0019ad8178b4ca55","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Adjust munin plugin to new client exceptions","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/897b27612f55cf528b6ca0ad0019ad8178b4ca55"},{"sha":"e0561c914602bd17ad7035d8ff1e97319bf77e0f","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Refactor nagios plugin with exceptions and more\n\nAlmost a full rewrite...\n- get rid of stupid duplicate methods for CP nagios handling (needs CP\n  nagios plugin adjustments!\n- for single all-in-one plugin for putty cloud, combine results instead\n  of stopping at the first non-ok part\n- remove duplicate info (like \"MxRuntime CRITICAL: \") from messages\n- improve process check messages so they're more understandable\n- make use of exception handling to improve program flow","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/e0561c914602bd17ad7035d8ff1e97319bf77e0f"},{"sha":"df6e9c9fc9c561083ba2ad7c3fcedfa9c0a9a2b0","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"runner: code cosmetics\n\n- explicit \"is None\" checks\n- some extra trace logging","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/df6e9c9fc9c561083ba2ad7c3fcedfa9c0a9a2b0"},{"sha":"1b9f27fd03a515272dd5814370af0e09ea4f7b3a","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"m2eeresponse: create_admin_user\n\nIf creating the admin user fails, just blow up, cmdloop will handle the\nexception and print the error.\n\nPossible errors:\n- ERR_INVALID_STATE (2): \"Invalid runtime state. Try starting first.\"\n- ERR_FAILED (3): \"Creating the userobject failed\"\n- ERR_NEW_PASSWORD_REFUSED (4): some message about password strength","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/1b9f27fd03a515272dd5814370af0e09ea4f7b3a"},{"sha":"eb6093360cf4b0aefeda540a2029fb51f49fa3a8","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"m2eeresponse: update_admin_user\n\nIf changing password of a user fails, just blow up, cmdloop will handle\nthe exception and print the error.\n\nPossible errors:\n- ERR_INVALID_STATE (2): \"Invalid runtime state. Try starting first.\"\n- ERR_FAILED (3): various reasons, like the user does not exist or\n  internal errors\n- ERR_NEW_PASSWORD_REFUSED (4): some message about password strength","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/eb6093360cf4b0aefeda540a2029fb51f49fa3a8"},{"sha":"11e4e722de163fb7c25ec1c849f26cf964fb52fd","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"m2eeresponse: let cmdloop handle exceptions and print errors","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/11e4e722de163fb7c25ec1c849f26cf964fb52fd"},{"sha":"9c0adbba05f023666b59b0c79624c7927f94c6ea","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Exceptify write_felix_config\n\nThrow M2EEException instead of returning False","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/9c0adbba05f023666b59b0c79624c7927f94c6ea"},{"sha":"1159f751e24239df3c8fdd468b75ba6c48582db4","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Exceptify profile.py\n\nJust blow up if something happens that is not in the \"happy flow\".\nI have no idea if this thing even still works.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/1159f751e24239df3c8fdd468b75ba6c48582db4"},{"sha":"a0af8c5ca057c41cec3843adfdf5a82afdd9656c","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"m2eeresponse: show_license_information\n\nNothing interesting happening here, move along...","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/a0af8c5ca057c41cec3843adfdf5a82afdd9656c"},{"sha":"19fc515736d56c1b561c9f3eee60508b7add106a","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Exceptify start_appcontainer\n\nChange m2ee.start_appcontainer to throw an exception in case of failure\ninstead of logging some errors and using a True/False return value\n\n- the if not self.config.all_systems_are_go needs to be changed later\n  when the start actions will just throw an exception if required\n  information is not available\n- the if not self.runner.start() needs to be changed later when runner\n  start will just throw an exception if it fails to start the process\n\nAbout the \"if result == 3:  # logsubscriber name exists\":\nIn the past when encountering an error during start runtime, the whole\nstart procedure would be retried, also doing start logging again. For\nthir reason, an already existing logsubscriber was ignored. Currently,\nsetting up logging is already done when entering the retry loop that\noffers the user to do actions to fix startup. So, remove the exception.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/19fc515736d56c1b561c9f3eee60508b7add106a"},{"sha":"f623cc8872e5033c1859f2ce56f48cdf025c7aa4","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Add m2ee.exceptions.py\n\nPut some exceptions in here to prevent import loops :o)","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/f623cc8872e5033c1859f2ce56f48cdf025c7aa4"},{"sha":"714df40e795545904f5d370f863a541f10926025","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Exceptify start_runtime flow in CLI\n\nIn the startup loop in the interactive cmd in m2ee.py, instead of checking\nstartresponse.get_result(), catch a m2ee.client.M2EEAdminException and act to\ngive the user options to resolve the error. Whenever something really breaks\nunexpectedly, abort and shut down the runtime.\n\nBy the way, self.m2ee.send_runtime_config(database_password) does not just send\na database_password. Don't ask about this ugly database_password hack, it needs\nto go away.\n\nFor _handle_ddl_commands:\n- If executing ddl commands fails, there is not really a point in displaying a\n  prompt to retry. Either something is horribly broken in the queries, or a disk\n  is filling up etc. It's not expected that doing the same again will lead to a\n  different result.\n- So, don't catch the M2EEAdminException here, but let it be catched by the\n  start runtime loop, which will abort and shut down the runtime.\n\nFor _handle_admin_1: also see 1b9f27fd and eb609336. If an error occurs, be\noptimistic and assume it is a password strength validation error and let the\nuser try again.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/714df40e795545904f5d370f863a541f10926025"},{"sha":"4d9450ed7b55d8850e33d38c5421136295d3bfda","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Exceptify start_runtime flow in core.py\n\nInstead of checking result values of client calls, just let the\nexceptions happen.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/4d9450ed7b55d8850e33d38c5421136295d3bfda"},{"sha":"3b8880fc6afe76609107fe9e5acaf966249bcea1","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Exceptify check_health\n\nNo moar has_error, just happy flow, and handling an exception if really\nneeded.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/3b8880fc6afe76609107fe9e5acaf966249bcea1"},{"sha":"82c245ea75cb8846cc7451c11d9bba28d585be05","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"M2EEException: cause attribute\n\nWhen catching an exception and wrapping it into an M2EEException (so it\ncan be specifically catched later on), provide an attribute to store the\noriginal exception.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/82c245ea75cb8846cc7451c11d9bba28d585be05"},{"sha":"f634907d08ce83909f8e62d5bd8bb22c0cb72d4b","author":{"email":"546b58fedb3aea641a6a5cec83ec11f11632c513@mendix.com","name":"Hans van Kranenburg"},"message":"Catch M2EEException in onecmd in the CLI\n\nSo that API functions (like unpack) can explode. Report the unexpected\nerror and continue.","distinct":false,"url":"https://api.github.com/repos/mendix/m2ee-tools/commits/f634907d08ce83909f8e62d5bd8bb22c0cb72d4b"}]}