/usr/lib/python2.6/site-packages/openstackclient/compute/v2
NameSizeModeActions
agent.py48880644editdlrm
agent.pyc57320644editdlrm
aggregate.py94390644editdlrm
aggregate.pyc100210644editdlrm
availability_zone.py34320644editdlrm
availability_zone.pyc36300644editdlrm
console.py37460644editdlrm
console.pyc36900644editdlrm
fixedip.py25930644editdlrm
fixedip.pyc28550644editdlrm
flavor.py98270644editdlrm
flavor.pyc99440644editdlrm
floatingip.py45770644editdlrm
floatingip.pyc60360644editdlrm
floatingippool.py12580644editdlrm
floatingippool.pyc14740644editdlrm
host.py23810644editdlrm
host.pyc31290644editdlrm
hypervisor.py42880644editdlrm
hypervisor.pyc39990644editdlrm
hypervisor_stats.py11060644editdlrm
hypervisor_stats.pyc12170644editdlrm
keypair.py48790644editdlrm
keypair.pyc54660644editdlrm
security_group.py117220644editdlrm
security_group.pyc130480644editdlrm
server.py512940644editdlrm
server.pyc456130644editdlrm
service.py32640644editdlrm
service.pyc37010644editdlrm
usage.py66480644editdlrm
usage.pyc70300644editdlrm
__init__.py00644editdlrm
__init__.pyc1700644editdlrm
Edit: /usr/lib/python2.6/site-packages/openstackclient/compute/v2/aggregate.py (9439B)
# Copyright 2012 OpenStack Foundation # Copyright 2013 Nebula Inc. # # 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. # """Compute v2 Aggregate action implementations""" import logging import six from cliff import command from cliff import lister from cliff import show from openstackclient.common import parseractions from openstackclient.common import utils class AddAggregateHost(show.ShowOne): """Add host to aggregate""" log = logging.getLogger(__name__ + '.AddAggregateHost') def get_parser(self, prog_name): parser = super(AddAggregateHost, self).get_parser(prog_name) parser.add_argument( 'aggregate', metavar='', help='Aggregate (name or ID)', ) parser.add_argument( 'host', metavar='', help='Host to add to ', ) return parser def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) compute_client = self.app.client_manager.compute aggregate = utils.find_resource( compute_client.aggregates, parsed_args.aggregate, ) data = compute_client.aggregates.add_host(aggregate, parsed_args.host) info = {} info.update(data._info) return zip(*sorted(six.iteritems(info))) class CreateAggregate(show.ShowOne): """Create a new aggregate""" log = logging.getLogger(__name__ + ".CreateAggregate") def get_parser(self, prog_name): parser = super(CreateAggregate, self).get_parser(prog_name) parser.add_argument( "name", metavar="", help="New aggregate name", ) parser.add_argument( "--zone", metavar="", help="Availability zone name", ) parser.add_argument( "--property", metavar="", action=parseractions.KeyValueAction, help='Property to add to this aggregate ' '(repeat option to set multiple properties)', ) return parser def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) compute_client = self.app.client_manager.compute info = {} data = compute_client.aggregates.create( parsed_args.name, parsed_args.zone, ) info.update(data._info) if parsed_args.property: info.update(compute_client.aggregates.set_metadata( data, parsed_args.property, )._info) return zip(*sorted(six.iteritems(info))) class DeleteAggregate(command.Command): """Delete an existing aggregate""" log = logging.getLogger(__name__ + '.DeleteAggregate') def get_parser(self, prog_name): parser = super(DeleteAggregate, self).get_parser(prog_name) parser.add_argument( 'aggregate', metavar='', help='Aggregate to delete (name or ID)', ) return parser @utils.log_method(log) def take_action(self, parsed_args): compute_client = self.app.client_manager.compute data = utils.find_resource( compute_client.aggregates, parsed_args.aggregate, ) compute_client.aggregates.delete(data.id) return class ListAggregate(lister.Lister): """List all aggregates""" log = logging.getLogger(__name__ + ".ListAggregate") def get_parser(self, prog_name): parser = super(ListAggregate, self).get_parser(prog_name) parser.add_argument( '--long', action='store_true', default=False, help='List additional fields in output') return parser def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) compute_client = self.app.client_manager.compute data = compute_client.aggregates.list() if parsed_args.long: # Remove availability_zone from metadata because Nova doesn't for d in data: if 'availability_zone' in d.metadata: d.metadata.pop('availability_zone') # This is the easiest way to change column headers column_headers = ( "ID", "Name", "Availability Zone", "Properties", ) columns = ( "ID", "Name", "Availability Zone", "Metadata", ) else: column_headers = columns = ( "ID", "Name", "Availability Zone", ) return (column_headers, (utils.get_item_properties( s, columns, ) for s in data)) class RemoveAggregateHost(show.ShowOne): """Remove host from aggregate""" log = logging.getLogger(__name__ + '.RemoveAggregateHost') def get_parser(self, prog_name): parser = super(RemoveAggregateHost, self).get_parser(prog_name) parser.add_argument( 'aggregate', metavar='', help='Aggregate (name or ID)', ) parser.add_argument( 'host', metavar='', help='Host to remove from ', ) return parser def take_action(self, parsed_args): self.log.debug("take_action(%s)", parsed_args) compute_client = self.app.client_manager.compute aggregate = utils.find_resource( compute_client.aggregates, parsed_args.aggregate, ) data = compute_client.aggregates.remove_host( aggregate, parsed_args.host, ) info = {} info.update(data._info) return zip(*sorted(six.iteritems(info))) class SetAggregate(show.ShowOne): """Set aggregate properties""" log = logging.getLogger(__name__ + '.SetAggregate') def get_parser(self, prog_name): parser = super(SetAggregate, self).get_parser(prog_name) parser.add_argument( 'aggregate', metavar='', help='Aggregate to modify (name or ID)', ) parser.add_argument( '--name', metavar='', help='Set aggregate name', ) parser.add_argument( "--zone", metavar="", help="Set availability zone name", ) parser.add_argument( "--property", metavar="", action=parseractions.KeyValueAction, help='Property to set on ' '(repeat option to set multiple properties)', ) return parser @utils.log_method(log) def take_action(self, parsed_args): compute_client = self.app.client_manager.compute aggregate = utils.find_resource( compute_client.aggregates, parsed_args.aggregate, ) info = {} kwargs = {} if parsed_args.name: kwargs['name'] = parsed_args.name if parsed_args.zone: kwargs['availability_zone'] = parsed_args.zone if kwargs: info.update(compute_client.aggregates.update( aggregate, kwargs )._info) if parsed_args.property: info.update(compute_client.aggregates.set_metadata( aggregate, parsed_args.property, )._info) if info: return zip(*sorted(six.iteritems(info))) else: return ({}, {}) class ShowAggregate(show.ShowOne): """Display aggregate details""" log = logging.getLogger(__name__ + '.ShowAggregate') def get_parser(self, prog_name): parser = super(ShowAggregate, self).get_parser(prog_name) parser.add_argument( 'aggregate', metavar='', help='Aggregate to display (name or ID)', ) return parser @utils.log_method(log) def take_action(self, parsed_args): compute_client = self.app.client_manager.compute data = utils.find_resource( compute_client.aggregates, parsed_args.aggregate, ) # Remove availability_zone from metadata because Nova doesn't if 'availability_zone' in data.metadata: data.metadata.pop('availability_zone') # Map 'metadata' column to 'properties' data._info.update({'properties': data._info.pop('metadata')}) info = {} info.update(data._info) return zip(*sorted(six.iteritems(info)))