summaryrefslogtreecommitdiff
path: root/reddwarfclient/mcli.py
diff options
context:
space:
mode:
Diffstat (limited to 'reddwarfclient/mcli.py')
-rw-r--r--reddwarfclient/mcli.py246
1 files changed, 0 insertions, 246 deletions
diff --git a/reddwarfclient/mcli.py b/reddwarfclient/mcli.py
deleted file mode 100644
index 62371cc..0000000
--- a/reddwarfclient/mcli.py
+++ /dev/null
@@ -1,246 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright 2011 OpenStack LLC
-#
-# 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.
-
-"""
-Reddwarf Management Command line tool
-"""
-
-import json
-import optparse
-import os
-import sys
-
-
-# If ../reddwarf/__init__.py exists, add ../ to Python search path, so that
-# it will override what happens to be installed in /usr/(local/)lib/python...
-possible_topdir = os.path.normpath(os.path.join(os.path.abspath(sys.argv[0]),
- os.pardir,
- os.pardir))
-if os.path.exists(os.path.join(possible_topdir, 'reddwarfclient',
- '__init__.py')):
- sys.path.insert(0, possible_topdir)
-
-
-from reddwarfclient import common
-
-
-oparser = None
-
-
-def _pretty_print(info):
- print json.dumps(info, sort_keys=True, indent=4)
-
-
-class HostCommands(common.AuthedCommandsBase):
- """Commands to list info on hosts"""
-
- params = [
- 'name',
- ]
-
- def update_all(self):
- """Update all instances on a host"""
- self._require('name')
- self.dbaas.hosts.update_all(self.name)
-
- def get(self):
- """List details for the specified host"""
- self._require('name')
- self._pretty_print(self.dbaas.hosts.get, self.name)
-
- def list(self):
- """List all compute hosts"""
- self._pretty_list(self.dbaas.hosts.index)
-
-
-class QuotaCommands(common.AuthedCommandsBase):
- """List and update quota limits for a tenant."""
-
- params = ['id',
- 'instances',
- 'volumes',
- 'backups']
-
- def list(self):
- """List all quotas for a tenant"""
- self._require('id')
- self._pretty_print(self.dbaas.quota.show, self.id)
-
- def update(self):
- """Update quota limits for a tenant"""
- self._require('id')
- self._pretty_print(self.dbaas.quota.update, self.id,
- dict((param, getattr(self, param))
- for param in self.params if param != 'id'))
-
-
-class RootCommands(common.AuthedCommandsBase):
- """List details about the root info for an instance."""
-
- params = [
- 'id',
- ]
-
- def history(self):
- """List root history for the instance."""
- self._require('id')
- self._pretty_print(self.dbaas.management.root_enabled_history, self.id)
-
-
-class AccountCommands(common.AuthedCommandsBase):
- """Commands to list account info"""
-
- params = [
- 'id',
- ]
-
- def list(self):
- """List all accounts with non-deleted instances"""
- self._pretty_print(self.dbaas.accounts.index)
-
- def get(self):
- """List details for the account provided"""
- self._require('id')
- self._pretty_print(self.dbaas.accounts.show, self.id)
-
-
-class InstanceCommands(common.AuthedCommandsBase):
- """List details about an instance."""
-
- params = [
- 'deleted',
- 'id',
- 'limit',
- 'marker',
- 'host',
- ]
-
- def get(self):
- """List details for the instance."""
- self._require('id')
- self._pretty_print(self.dbaas.management.show, self.id)
-
- def list(self):
- """List all instances for account"""
- deleted = None
- if self.deleted is not None:
- if self.deleted.lower() in ['true']:
- deleted = True
- elif self.deleted.lower() in ['false']:
- deleted = False
- self._pretty_paged(self.dbaas.management.index, deleted=deleted)
-
- def hwinfo(self):
- """Show hardware information details about an instance."""
- self._require('id')
- self._pretty_print(self.dbaas.hwinfo.get, self.id)
-
- def diagnostic(self):
- """List diagnostic details about an instance."""
- self._require('id')
- self._pretty_print(self.dbaas.diagnostics.get, self.id)
-
- def stop(self):
- """Stop MySQL on the given instance."""
- self._require('id')
- self._pretty_print(self.dbaas.management.stop, self.id)
-
- def reboot(self):
- """Reboot the instance."""
- self._require('id')
- self._pretty_print(self.dbaas.management.reboot, self.id)
-
- def migrate(self):
- """Migrate the instance."""
- self._require('id')
- self._pretty_print(self.dbaas.management.migrate, self.id, self.host)
-
- def reset_task_status(self):
- """Set the instance's task status to NONE."""
- self._require('id')
- self._pretty_print(self.dbaas.management.reset_task_status, self.id)
-
-
-class StorageCommands(common.AuthedCommandsBase):
- """Commands to list devices info"""
-
- params = []
-
- def list(self):
- """List details for the storage device"""
- self._pretty_list(self.dbaas.storage.index)
-
-
-def config_options(oparser):
- oparser.add_option("-u", "--url", default="http://localhost:5000/v1.1",
- help="Auth API endpoint URL with port and version. \
- Default: http://localhost:5000/v1.1")
-
-
-COMMANDS = {'account': AccountCommands,
- 'host': HostCommands,
- 'instance': InstanceCommands,
- 'root': RootCommands,
- 'storage': StorageCommands,
- 'quota': QuotaCommands,
- }
-
-
-def main():
- # Parse arguments
- oparser = common.CliOptions.create_optparser(True)
- for k, v in COMMANDS.items():
- v._prepare_parser(oparser)
- (options, args) = oparser.parse_args()
-
- if not args:
- common.print_commands(COMMANDS)
-
- # Pop the command and check if it's in the known commands
- cmd = args.pop(0)
- if cmd in COMMANDS:
- fn = COMMANDS.get(cmd)
- command_object = None
- try:
- command_object = fn(oparser)
- except Exception as ex:
- if options.debug:
- raise
- print(ex)
-
- # Get a list of supported actions for the command
- actions = common.methods_of(command_object)
-
- if len(args) < 1:
- common.print_actions(cmd, actions)
-
- # Check for a valid action and perform that action
- action = args.pop(0)
- if action in actions:
- try:
- getattr(command_object, action)()
- except Exception as ex:
- if options.debug:
- raise
- print ex
- else:
- common.print_actions(cmd, actions)
- else:
- common.print_commands(COMMANDS)
-
-
-if __name__ == '__main__':
- main()