def test_list_instances_with_autodetect(mock_list_instance_for_service, mock_validate_service_name, mock_guess_service_name): expected = ["instance1", "instance2", "instance3"] mock_guess_service_name.return_value = "fake_service" mock_validate_service_name.return_value = None mock_list_instance_for_service.return_value = expected actual = utils.list_instances() assert actual == expected mock_validate_service_name.assert_called_once_with("fake_service") mock_list_instance_for_service.assert_called_once_with("fake_service")
def test_list_instances_with_autodetect( mock_list_instance_for_service, mock_validate_service_name, mock_guess_service_name, ): expected = ['instance1', 'instance2', 'instance3'] mock_guess_service_name.return_value = 'fake_service' mock_validate_service_name.return_value = None mock_list_instance_for_service.return_value = expected actual = utils.list_instances() assert actual == expected mock_validate_service_name.assert_called_once_with('fake_service') mock_list_instance_for_service.assert_called_once_with('fake_service')
def test_list_instances_no_service( mock_list_services, mock_list_instance_for_service, mock_validate_service_name, mock_guess_service_name, ): expected = ['instance1', 'instance2', 'instance3'] mock_guess_service_name.return_value = 'unused' mock_list_services.return_value = ['fake_service1'] mock_validate_service_name.side_effect = utils.NoSuchService(None) mock_list_instance_for_service.return_value = expected actual = utils.list_instances() mock_validate_service_name.assert_called_once_with('unused') mock_list_instance_for_service.assert_called_once_with('fake_service1') assert actual == expected
def test_list_instances_no_service( mock_list_services, mock_list_instance_for_service, mock_validate_service_name, mock_guess_service_name, ): expected = ["instance1", "instance2", "instance3"] mock_guess_service_name.return_value = "unused" mock_list_services.return_value = ["fake_service1"] mock_validate_service_name.side_effect = utils.NoSuchService(None) mock_list_instance_for_service.return_value = expected actual = utils.list_instances() mock_validate_service_name.assert_called_once_with("unused") mock_list_instance_for_service.assert_called_once_with("fake_service1") assert actual == expected
def paasta_start_or_stop(args, desired_state): """Requests a change of state to start or stop given branches of a service.""" instances = args.instances clusters = args.clusters soa_dir = args.soa_dir service = figure_out_service_name(args=args, soa_dir=soa_dir) if args.clusters is not None: clusters = args.clusters.split(",") else: clusters = list_clusters(service) if args.instances is not None: instances = args.instances.split(",") else: instances = list_instances() try: remote_refs = remote_git.list_remote_refs(utils.get_git_url(service, soa_dir)) except remote_git.LSRemoteException as e: msg = ( "Error talking to the git server: %s\n" "This PaaSTA command requires access to the git server to operate.\n" "The git server may be down or not reachable from here.\n" "Try again from somewhere where the git server can be reached, " "like your developer environment." ) % str(e) print msg return 1 invalid_deploy_groups = [] for cluster in clusters: for instance in instances: service_config = get_instance_config( service=service, cluster=cluster, instance=instance, soa_dir=soa_dir, load_deployments=False, ) deploy_group = service_config.get_deploy_group() (deploy_tag, _) = get_latest_deployment_tag(remote_refs, deploy_group) if deploy_tag not in remote_refs: invalid_deploy_groups.append(deploy_group) else: force_bounce = utils.format_timestamp(datetime.datetime.utcnow()) issue_state_change_for_service( service_config=service_config, force_bounce=force_bounce, desired_state=desired_state, ) return_val = 0 if invalid_deploy_groups: print "No branches found for %s in %s." % \ (", ".join(invalid_deploy_groups), remote_refs) print "Has %s been deployed there yet?" % service return_val = 1 return return_val