unused file

This commit is contained in:
David Lenwell 2013-10-04 03:05:44 -07:00
parent a6bb256ed0
commit 333ec4146f
1 changed files with 0 additions and 222 deletions

View File

@ -1,222 +0,0 @@
#!/usr/bin/env python
#
# Copyright (c) 2013 Piston Cloud Computing, Inc.
# All Rights Reserved.
#
# 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.
import os.path
import sys
import subprocess
import argparse
from textwrap import dedent
from refstack.common.test import Test
from refstack.common.cloud import Cloud
basedir = os.path.dirname(__file__)
def call(*args, **kwargs):
"""subprocess.call with error checking."""
assert not subprocess.call(*args, **kwargs)
class actions(argparse.Action):
""" david please comment this """
test_id = None
params = {}
def __call__(self, parser, params, values, option_string=None, **kwargs):
"""Triggered by -c command line argument """
self.params = params
setattr(self.params, self.dest, values)
self._print(self.params, verbose=False)
# action function mapping
actions = { 'add' : self.add,
'remove' : self.remove,
'run' : self.run,
'status' : self.status,
'cancel' : self.cancel,
'result' : self.result,
'list-tests' : self.list_tests,
'list-clouds' : self.list_clouds }
if len(self.params.command) > 1:
print "Please only use one command at a time!\n\n"
parser.print_help()
sys.exit(1)
for command in self.params.command:
if command in actions:
actions[command]()
def _print(self, output, verbose=False):
"""print wrapper so -v and -s can be respected"""
if not self.params.silent:
if verbose is False:
print(output)
elif verbose is True and self.params.verbose > 0:
print(output)
def add(self):
""" add new cloud
needs endpoint,test_user,test_key, admin_endpoint,admin_user,admin_key
refstack add --endpoint='http://127.0.0.1:5000/v3/' --test_user='demo'
--test_key='pass' --admin_endpoint='http://127.0.0.1:5000/v3/'
--admin_user='admin' --admin_key='pass'
outputs confirmation along with the cloud_id that was just created."""
self._print('add command called')
#self._print(self.params.endpoint)
#for k,v in self.params.:
# self._print(k + ': ' + v)
c = Cloud()
c.add(self.params.endpoint,self.params.test_user,self.params.test_key,
self.params.admin_endpoint,self.params.admin_user,self.params.admin_key)
self._print('cloud added ')
def remove(self):
""" add new cloud
refstack remove --cloud_id 123
confirms that cloud-id 123 has been removed from the database as well as
all tests assosiateed with it."""
self._print('remove command called',True)
def run(self):
""" run test command
refstack run --cloud_id {123} --sha {sha}
triggers local run of tempest with specified cloud_id returns a
test_id so that the user can check status or cancel the test"""
self._print('run command called',True)
def status(self):
""" get the status of a running test
refstack status --test-id {123}
"""
self._print('status command called',True)
def cancel(self):
""" cancels a running test
refstack cancel --test-id {test_id}
stops the running test if it is running and displays output to user"""
self._print('cancel command called',True)
def result(self):
""" outputs the results of a test
refstack results --test_id --format {screen|subunit}
if the test isn't finished it will say in progress otherwise will return
subunit|screen output"""
self._print('result command called',True)
def list_tests(self):
""" returns either a list of cached test results or a list of clouds
"""
self._print('list command called',True)
def list_clouds(self):
""" returns either a list of cached test results or a list of clouds
"""
self._print('list command called',True)
def main():
""" command line hook """
parser = argparse.ArgumentParser(
formatter_class=argparse.RawDescriptionHelpFormatter,
description=dedent("""\
This is a CLI utility for refstack
"""),
epilog=dedent("""\
Usage:
Refstack CLI:
\n\n\n """))
# output options
parser.add_argument('--verbose', '-v', action='count')
parser.add_argument('--silent', '-s', action='store_true')
# params for add endpoint,test_user,test_key, admin_endpoint,admin_user,admin_key
parser.add_argument('--endpoint', nargs='?', type=str,
default=None,
help="""""")
parser.add_argument('--test_user', nargs='?', type=str,
default=None,
help="""""")
parser.add_argument('--test_key', nargs='?', type=str,
default=None,
help="""""")
parser.add_argument('--admin_endpoint', nargs='?', type=str,
default=None,
help="""""")
parser.add_argument('--admin_user', nargs='?', type=str,
default=None,
help="""""")
parser.add_argument('--admin_key', nargs='?', type=str,
default=None,
help="""""")
parser.add_argument('--test-id', nargs='?', type=int,
default=None,
help="""id of the test you want to interact with.. if you are starting
a new test you can leave this blank and it will
return a new test_id""")
parser.add_argument('command', nargs='+', action=actions,
help="Command to execute. ",
choices=[ 'run','add','remove',
'status','cancel','result',
'list_clouds','list_tests'])
args = parser.parse_args()
# validate input
#option_given = not (args.c == None)
#if not option_given:
# parser.print_help()
# sys.exit(1)
if __name__ == '__main__':
main()