Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- from __future__ import print_function
- import sys
- from cliff import app
- from cliff import command
- from cliff import commandmanager
- from keystoneauth1.identity import v3
- from keystoneauth1 import session
- from keystoneclient.v3 import client as ks_client
- from neutronclient.v2_0 import client as neutron_client
- from keystoneauth1 import loading as ks_loading
- from oslo_config import cfg
- import logging
- CONF = cfg.CONF
- CONF.import_group('keystone_authtoken', 'keystonemiddleware.auth_token')
- KS_SESSION = None
- def _get_keystone_session():
- global KS_SESSION
- if not KS_SESSION:
- auth = v3.Password(
- auth_url=CONF.keystone_authtoken.auth_uri,
- username=CONF.keystone_authtoken.username,
- password=CONF.keystone_authtoken.password,
- project_name=CONF.keystone_authtoken.project_name,
- user_domain_name=CONF.keystone_authtoken.user_domain_name,
- project_domain_name=CONF.keystone_authtoken.project_domain_name,
- )
- KS_SESSION = session.Session(auth=auth, verify=False)
- return KS_SESSION
- def get_keystone_client():
- sess = _get_keystone_session()
- return ks_client.Client(session=sess)
- def get_neutron_client():
- sess = _get_keystone_session()
- return neutron_client.Client(session=sess)
- class NeutronApiOps(app.App):
- def __init__(self):
- super(NeutronApiOps, self).__init__(
- description='neutron ops helper',
- version='0.1',
- command_manager=commandmanager.CommandManager('neutron-api.ops'),
- deferred_help=True,
- )
- self.commands = {"get-ip-info": GetIPInfo}
- for k, v in self.commands.items():
- self.command_manager.add_command(k, v)
- CONF(project='neutron')
- ks_loading.load_auth_from_conf_options(cfg.CONF, 'keystone_authtoken')
- # auth = ks_loading.load_auth_from_conf_options(cfg.CONF, 'keystone_authtoken')
- # session = ks_loading.load_session_from_conf_options(cfg.CONF, 'keystone_authtoken', auth=auth)
- nc = get_neutron_client()
- print(nc)
- # nc.list_networks()
- def initialize_app(self, argv):
- self.LOG.debug('initialize_app')
- def prepare_to_run_command(self, cmd):
- self.LOG.debug('prepare_to_run_command %s', cmd.__class__.__name__)
- def clean_up(self, cmd, result, err):
- self.LOG.debug('clean_up %s', cmd.__class__.__name__)
- if err:
- self.LOG.debug('got an error: %s', err)
- class GetIPInfo(command.Command):
- log = logging.getLogger(__name__)
- def take_action(self, parsed_args):
- self.log.info('get-ip-info parsed_args: {}'.format(parsed_args))
- self.app.stdout.write('FOO\n')
- def main(argv=sys.argv[1:]):
- actionsapp = NeutronApiOps()
- return actionsapp.run(argv)
- if __name__ == '__main__':
- sys.exit(main(sys.argv[1:]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement