Remove example not tested

This example is not automatically tested and is better
served by other examples involving conductors, jobs, and
such so it doesn't seem to have much value to retain it.

Change-Id: Idc622bb6e6098507c99758614a96feb6a8a9b0c8
This commit is contained in:
Joshua Harlow
2015-06-10 14:30:46 -07:00
parent ea51f8b109
commit 61a4f978b3
2 changed files with 1 additions and 172 deletions

View File

@@ -1,171 +0,0 @@
# -*- encoding: utf-8 -*-
#
# Copyright © 2013 eNovance <licensing@enovance.com>
#
# Authors: Dan Krause <dan@dankrause.net>
# Cyril Roelandt <cyril.roelandt@enovance.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
# This example shows how to use the job board feature.
#
# Let's start by creating some jobs:
# $ python job_board_no_test.py create my-board my-job '{}'
# $ python job_board_no_test.py create my-board my-job '{"foo": "bar"}'
# $ python job_board_no_test.py create my-board my-job '{"foo": "baz"}'
# $ python job_board_no_test.py create my-board my-job '{"foo": "barbaz"}'
#
# Make sure they were registered:
# $ python job_board_no_test.py list my-board
# 7277181a-1f83-473d-8233-f361615bae9e - {}
# 84a396e8-d02e-450d-8566-d93cb68550c0 - {u'foo': u'bar'}
# 4d355d6a-2c72-44a2-a558-19ae52e8ae2c - {u'foo': u'baz'}
# cd9aae2c-fd64-416d-8ba0-426fa8e3d59c - {u'foo': u'barbaz'}
#
# Perform one job:
# $ python job_board_no_test.py consume my-board \
# 84a396e8-d02e-450d-8566-d93cb68550c0
# Performing job 84a396e8-d02e-450d-8566-d93cb68550c0 with args \
# {u'foo': u'bar'}
# $ python job_board_no_test.py list my-board
# 7277181a-1f83-473d-8233-f361615bae9e - {}
# 4d355d6a-2c72-44a2-a558-19ae52e8ae2c - {u'foo': u'baz'}
# cd9aae2c-fd64-416d-8ba0-426fa8e3d59c - {u'foo': u'barbaz'}
#
# Delete a job:
# $ python job_board_no_test.py delete my-board \
# cd9aae2c-fd64-416d-8ba0-426fa8e3d59c
# $ python job_board_no_test.py list my-board
# 7277181a-1f83-473d-8233-f361615bae9e - {}
# 4d355d6a-2c72-44a2-a558-19ae52e8ae2c - {u'foo': u'baz'}
#
# Delete all the remaining jobs
# $ python job_board_no_test.py clear my-board
# $ python job_board_no_test.py list my-board
# $
import argparse
import contextlib
import json
import os
import sys
import tempfile
import taskflow.jobs.backends as job_backends
from taskflow.persistence import logbook
import example_utils # noqa
@contextlib.contextmanager
def jobboard(*args, **kwargs):
jb = job_backends.fetch(*args, **kwargs)
jb.connect()
yield jb
jb.close()
conf = {
'board': 'zookeeper',
'hosts': ['127.0.0.1:2181']
}
def consume_job(args):
def perform_job(job):
print("Performing job %s with args %s" % (job.uuid, job.details))
with jobboard(args.board_name, conf) as jb:
for job in jb.iterjobs(ensure_fresh=True):
if job.uuid == args.job_uuid:
jb.claim(job, "test-client")
perform_job(job)
jb.consume(job, "test-client")
def clear_jobs(args):
with jobboard(args.board_name, conf) as jb:
for job in jb.iterjobs(ensure_fresh=True):
jb.claim(job, "test-client")
jb.consume(job, "test-client")
def create_job(args):
store = json.loads(args.details)
book = logbook.LogBook(args.job_name)
if example_utils.SQLALCHEMY_AVAILABLE:
persist_path = os.path.join(tempfile.gettempdir(), "persisting.db")
backend_uri = "sqlite:///%s" % (persist_path)
else:
persist_path = os.path.join(tempfile.gettempdir(), "persisting")
backend_uri = "file:///%s" % (persist_path)
with example_utils.get_backend(backend_uri) as backend:
backend.get_connection().save_logbook(book)
with jobboard(args.board_name, conf, persistence=backend) as jb:
jb.post(args.job_name, book, details=store)
def list_jobs(args):
with jobboard(args.board_name, conf) as jb:
for job in jb.iterjobs(ensure_fresh=True):
print("%s - %s" % (job.uuid, job.details))
def delete_job(args):
with jobboard(args.board_name, conf) as jb:
for job in jb.iterjobs(ensure_fresh=True):
if job.uuid == args.job_uuid:
jb.claim(job, "test-client")
jb.consume(job, "test-client")
def main(argv):
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(title='subcommands',
description='valid subcommands',
help='additional help')
# Consume command
parser_consume = subparsers.add_parser('consume')
parser_consume.add_argument('board_name')
parser_consume.add_argument('job_uuid')
parser_consume.set_defaults(func=consume_job)
# Clear command
parser_consume = subparsers.add_parser('clear')
parser_consume.add_argument('board_name')
parser_consume.set_defaults(func=clear_jobs)
# Create command
parser_create = subparsers.add_parser('create')
parser_create.add_argument('board_name')
parser_create.add_argument('job_name')
parser_create.add_argument('details')
parser_create.set_defaults(func=create_job)
# Delete command
parser_delete = subparsers.add_parser('delete')
parser_delete.add_argument('board_name')
parser_delete.add_argument('job_uuid')
parser_delete.set_defaults(func=delete_job)
# List command
parser_list = subparsers.add_parser('list')
parser_list.add_argument('board_name')
parser_list.set_defaults(func=list_jobs)
args = parser.parse_args(argv)
args.func(args)
if __name__ == '__main__':
main(sys.argv[1:])

View File

@@ -95,7 +95,7 @@ def iter_examples():
name, ext = os.path.splitext(filename)
if ext != ".py":
continue
if not any(name.endswith(i) for i in ("utils", "no_test")):
if not name.endswith('utils'):
safe_name = safe_filename(name)
if safe_name:
yield name, safe_name