# Path: raxcli/models.py
# class Collection(object):
#     """
#     A collection of resources for outputting to a list.
#     """
#     def __init__(self, objs):
#         self.objs = objs
# 
#     def generate_output(self):
#         columns = []
#         data = []
#         for obj in self.objs:
#             if not columns:
#                 columns = [attr for attr, _ in
#                            obj.get_attrs(view_type='view_list')]
# 
#             values = []
#             for key in columns:
#                 attr = getattr(obj, key)
#                 value = attr.get_value()
#                 values.append(value)
# 
#             data.append(values)
# 
#         return (columns, data)
# 
# Path: raxcli/apps/monitoring/utils.py
# class MonitoringListCommand(MonitoringCommand, BaseListCommand):
#     def get_parser(self, prog_name):
#         parser = super(MonitoringListCommand, self).\
#             get_parser(prog_name=prog_name)
#         parser.add_argument('--marker', dest='marker')
#         return parser
# 
# def get_client(parsed_args):
#     config = get_config()
#     driver = get_driver(Provider.RACKSPACE)
# 
#     username = config['username']
#     api_key = config['api_key']
#     if parsed_args.username:
#         username = parsed_args.username
#     if parsed_args.api_key:
#         api_key = parsed_args.api_key
# 
#     api_url = parsed_args.api_url
#     auth_url = parsed_args.auth_url
# 
#     if not username:
#         raise ValueError('Missing required argument: username')
# 
#     if not api_key:
#         raise ValueError('Missing required argument: api-key')
# 
#     options = {}
# 
#     if api_url is not None:
#         options['ex_force_base_url'] = api_url
# 
#     if auth_url is not None:
#         options['ex_force_auth_url'] = auth_url
# 
#     return driver(username, api_key, **options)
# 
# Path: raxcli/apps/monitoring/resources.py
# class Entity(Model):
#     """
#     Entity resource.
#     """
#     id = Attribute()
#     label = Attribute()
#     uri = Attribute()
#     extra = Attribute(view_list=False)
#     agent_id = Attribute(view_list=False)
#     ip_addresses = Attribute(view_list=False)


import logging
from raxcli.models import Collection
from raxcli.apps.monitoring.utils import MonitoringListCommand, get_client
from raxcli.apps.monitoring.resources import Entity
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.




class ListCommand(MonitoringListCommand):
    """
    Return a list of entities.
    """
    log = logging.getLogger(__name__)

    def take_action(self, parsed_args):
        client = get_client(parsed_args)

        marker = parsed_args.marker if parsed_args.marker else None
        kwargs = {'ex_next_marker': marker}


# Path: raxcli/models.py
# class Collection(object):
#     """
#     A collection of resources for outputting to a list.
#     """
#     def __init__(self, objs):
#         self.objs = objs
# 
#     def generate_output(self):
#         columns = []
#         data = []
#         for obj in self.objs:
#             if not columns:
#                 columns = [attr for attr, _ in
#                            obj.get_attrs(view_type='view_list')]
# 
#             values = []
#             for key in columns:
#                 attr = getattr(obj, key)
#                 value = attr.get_value()
#                 values.append(value)
# 
#             data.append(values)
# 
#         return (columns, data)
# 
# Path: raxcli/apps/monitoring/utils.py
# class MonitoringListCommand(MonitoringCommand, BaseListCommand):
#     def get_parser(self, prog_name):
#         parser = super(MonitoringListCommand, self).\
#             get_parser(prog_name=prog_name)
#         parser.add_argument('--marker', dest='marker')
#         return parser
# 
# def get_client(parsed_args):
#     config = get_config()
#     driver = get_driver(Provider.RACKSPACE)
# 
#     username = config['username']
#     api_key = config['api_key']
#     if parsed_args.username:
#         username = parsed_args.username
#     if parsed_args.api_key:
#         api_key = parsed_args.api_key
# 
#     api_url = parsed_args.api_url
#     auth_url = parsed_args.auth_url
# 
#     if not username:
#         raise ValueError('Missing required argument: username')
# 
#     if not api_key:
#         raise ValueError('Missing required argument: api-key')
# 
#     options = {}
# 
#     if api_url is not None:
#         options['ex_force_base_url'] = api_url
# 
#     if auth_url is not None:
#         options['ex_force_auth_url'] = auth_url
# 
#     return driver(username, api_key, **options)
# 
# Path: raxcli/apps/monitoring/resources.py
# class Entity(Model):
#     """
#     Entity resource.
#     """
#     id = Attribute()
#     label = Attribute()
#     uri = Attribute()
#     extra = Attribute(view_list=False)
#     agent_id = Attribute(view_list=False)
#     ip_addresses = Attribute(view_list=False)


# Path: raxcli/apps/monitoring/commands/entities/list.py
import logging
from raxcli.models import Collection
from raxcli.apps.monitoring.utils import MonitoringListCommand, get_client
from raxcli.apps.monitoring.resources import Entity

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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.




class ListCommand(MonitoringListCommand):
    """
    Return a list of entities.
    """
    log = logging.getLogger(__name__)

    def take_action(self, parsed_args):
        client = get_client(parsed_args)

        marker = parsed_args.marker if parsed_args.marker else None
        kwargs = {'ex_next_marker': marker}


        entities = [Entity(entity)