¡@

Home 

OpenStack Study: noscli.py

OpenStack Index

**** CubicPower OpenStack Study ****

#!/usr/bin/env python

#

# Copyright (c) 2013 Brocade Communications Systems, Inc.

# All Rights Reserved.

#

# 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.

#

# Authors:

# Varma Bhupatiraju (vbhupati@#brocade.com)

# Shiv Haris (sharis@brocade.com)

"""Brocade NOS Driver CLI."""

from __future__ import print_function

import argparse

from neutron.openstack.common import log as logging

from neutron.plugins.brocade.nos import nosdriver as nos

LOG = logging.getLogger(__name__)

**** CubicPower OpenStack Study ****

class NOSCli(object):

**** CubicPower OpenStack Study ****

    def __init__(self, host, username, password):

        self.host = host

        self.username = username

        self.password = password

        self.driver = nos.NOSdriver()

**** CubicPower OpenStack Study ****

    def execute(self, cmd):

        numargs = len(args.otherargs)

        if args.cmd == 'create' and numargs == 1:

            self._create(args.otherargs[0])

        elif args.cmd == 'delete' and numargs == 1:

            self._delete(args.otherargs[0])

        elif args.cmd == 'associate' and numargs == 2:

            self._associate(args.otherargs[0], args.otherargs[1])

        elif args.cmd == 'dissociate' and numargs == 2:

            self._dissociate(args.otherargs[0], args.otherargs[1])

        else:

            print(usage_desc)

            exit(0)

**** CubicPower OpenStack Study ****

    def _create(self, net_id):

        self.driver.create_network(self.host, self.username, self.password,

                                   net_id)

**** CubicPower OpenStack Study ****

    def _delete(self, net_id):

        self.driver.delete_network(self.host, self.username, self.password,

                                   net_id)

**** CubicPower OpenStack Study ****

    def _associate(self, net_id, mac):

        self.driver.associate_mac_to_network(

            self.host, self.username, self.password, net_id, mac)

**** CubicPower OpenStack Study ****

    def _dissociate(self, net_id, mac):

        self.driver.dissociate_mac_from_network(

            self.host, self.username, self.password, net_id, mac)

usage_desc = """

Command descriptions:

    create 

    delete 

    associate  

    dissociate  

"""

parser = argparse.ArgumentParser(description='process args',

                                 usage=usage_desc, epilog='foo bar help')

parser.add_argument('--ip', default='localhost')

parser.add_argument('--username', default='admin')

parser.add_argument('--password', default='password')

parser.add_argument('cmd')

parser.add_argument('otherargs', nargs='*')

args = parser.parse_args()

noscli = NOSCli(args.ip, args.username, args.password)

noscli.execute(args.cmd)