Skip to content

Commit

Permalink
Merge pull request #39 from fghaas/improve-tasks
Browse files Browse the repository at this point in the history
Improve tasks
  • Loading branch information
Adolfo R. Brandes authored Jul 31, 2019
2 parents 2f3f215 + 42c71b8 commit b2014e7
Showing 1 changed file with 46 additions and 40 deletions.
86 changes: 46 additions & 40 deletions olxutils/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,8 @@ def valid_date(s):
help=u_help,
epilog=u_epilog)
u_parser.add_argument('--url',
default=os.getenv('OLX_CMS_URL'),
help='Open edX CMS URL')
u_parser.add_argument('--token',
default=os.getenv('OLX_CMS_TOKEN'),
help='Open edX REST API token')
u_parser.add_argument('-f',
'--file',
Expand Down Expand Up @@ -170,10 +168,8 @@ def valid_date(s):
help=s_help,
epilog=s_epilog)
s_parser.add_argument('--url',
default=os.getenv('OLX_CMS_URL'),
help='Open edX CMS URL')
s_parser.add_argument('--token',
default=os.getenv('OLX_CMS_TOKEN'),
help='Open edX REST API token')
s_parser.add_argument('-f',
'--file',
Expand All @@ -196,6 +192,8 @@ def valid_date(s):

self.parser = parser

self.setup_logging()

def parse_args(self, args=sys.argv[1:]):

opts = self.parser.parse_args(args)
Expand Down Expand Up @@ -281,20 +279,22 @@ def new_run(self,

logging.info("All done!")

def setup_logging(self, verbosity):
def setup_logging(self):
env_loglevel = os.getenv('OLX_LOG_LEVEL', 'WARNING').upper()
loglevel = getattr(logging, env_loglevel)
logging.basicConfig(level=loglevel,
format='%(message)s')

def apply_verbosity(self, verbosity):
# Python log levels go from 10 (DEBUG) to 50 (CRITICAL),
# our verbosity argument goes from -1 (-q) to 2 (-vv).
# We never want to suppress error and critical messages,
# and default to the OLX_LOG_LEVEL environment variable,
# and if *that's* unset, use 30 (WARNING). Hence:
env_loglevel = os.getenv('OLX_LOG_LEVEL', 'WARNING').upper()
base_loglevel = getattr(logging, env_loglevel)

root = logging.getLogger()
verbosity = min(verbosity, 2)
loglevel = base_loglevel - (verbosity * 10)

logging.basicConfig(level=loglevel,
format='%(message)s')
loglevel = root.getEffectiveLevel() - (verbosity * 10)
root.setLevel(loglevel)

def archive(self, root_directory='.'):
base_name = "archive"
Expand All @@ -304,39 +304,45 @@ def archive(self, root_directory='.'):
helper.make_archive()

def token(self,
url,
client_id,
client_secret):

helper = TokenHelper(url,
client_id,
client_secret)
url=None,
client_id=None,
client_secret=None):

helper = TokenHelper(
url or os.getenv('OLX_LMS_URL'),
client_id or os.getenv('OLX_LMS_CLIENT_ID'),
client_secret or os.getenv('OLX_LMS_CLIENT_SECRET')
)
return helper.fetch_token()

def upload(self,
url,
file,
token,
course_id,
wait):

helper = UploadHelper(url,
archive=file,
token=token,
course_id=course_id)
url=None,
file='archive.tar.gz',
token=None,
course_id=None,
wait=False):

helper = UploadHelper(
url or os.getenv('OLX_CMS_URL'),
archive=file,
token=token or os.getenv('OLX_CMS_TOKEN'),
course_id=course_id
)
return helper.upload(wait)

def status(self,
url,
file,
token,
course_id,
task_id):

helper = UploadHelper(url,
archive=file,
token=token,
course_id=course_id)
task_id,
url=None,
file='archive.tar.gz',
token=None,
course_id=None):

helper = UploadHelper(
url or os.getenv('OLX_CMS_URL'),
archive=file,
token=token or os.getenv('OLX_CMS_TOKEN'),
course_id=course_id
)
return helper.fetch_upload_task_state(task_id)

def main(self, argv=sys.argv):
Expand Down Expand Up @@ -372,7 +378,7 @@ def main(self, argv=sys.argv):

opts = self.parse_args(argv[1:])

self.setup_logging(opts.pop('verbosity') or 0)
self.apply_verbosity(opts.pop('verbosity') or 0)

# Invoke the subcommand, passing the parsed command line
# options in as kwargs
Expand Down

0 comments on commit b2014e7

Please sign in to comment.