def remove_mom_ee(): mom_ee_versions = [('1.4', 'strict'), ('1.4', 'permissive'), ('1.4', 'disabled'), ('1.3', 'strict'), ('1.3', 'permissive'), ('1.3', 'disabled')] for mom_ee in mom_ee_versions: endpoint = mom_ee_endpoint(mom_ee[0], mom_ee[1]) if shakedown.service_available_predicate(endpoint): print('Removing {}...'.format(endpoint)) with shakedown.marathon_on_marathon(name=endpoint): shakedown.delete_all_apps() client = marathon.create_client() client.remove_app(MOM_EE_NAME) shakedown.deployment_wait() print('Successfully removed {}'.format(MOM_EE_NAME))
def cluster_info(mom_name='marathon-user'): print("DC/OS: {}, in {} mode".format(shakedown.dcos_version(), shakedown.ee_version())) agents = shakedown.get_private_agents() print("Agents: {}".format(len(agents))) client = marathon.create_client() about = client.get_about() print("Marathon version: {}".format(about.get("version"))) if shakedown.service_available_predicate(mom_name): with shakedown.marathon_on_marathon(mom_name): try: client = marathon.create_client() about = client.get_about() print("Marathon MoM version: {}".format(about.get("version"))) except Exception: print("Marathon MoM not present") else: print("Marathon MoM not present")
def mom_version_less_than(version, name='marathon-user'): """ Returns True if MoM with the given {name} exists and has a version less than {version}. Note that if MoM does not exist False is returned. :param version: required version :type: string :param name: MoM name, default is 'marathon-user' :type: string :return: True if version < MoM version :rtype: bool """ if service_available_predicate(name): with marathon_on_marathon(name): return marathon_version() < LooseVersion(version) else: # We can either skip the corresponding test by returning False # or raise an exception. print('WARN: {} MoM not found. mom_version_less_than({}) is False'. format(name, version)) return False
def test_framework_unavailable_on_mom(): """ Launches an app that has elements necessary to create a service endpoint in DCOS. This test confirms that the endpoint is not created when launched with MoM. """ if shakedown.service_available_predicate('pyfw'): client = marathon.create_client() client.remove_app('python-http', True) shakedown.deployment_wait() shakedown.wait_for_service_endpoint_removal('pyfw') with shakedown.marathon_on_marathon(): delete_all_apps_wait() client = marathon.create_client() client.add_app(common.fake_framework_app()) shakedown.deployment_wait() try: shakedown.wait_for_service_endpoint('pyfw', 15) assert False, 'MoM shoud NOT create a service endpoint' except: assert True pass