Example #1
0
    def test_get_enum_as_dict(self):
        class EnumClass1(object):
            KEY1 = 0
            KEY_TWO_TWO = 1
            SOME_KEY_SOME_SOME = 2

        result1 = get_enum_as_dict(EnumClass1, friendly_names=False)
        result2 = get_enum_as_dict(EnumClass1, friendly_names=True)
        result1_reversed = get_enum_as_dict(EnumClass1, reverse=True,
                                            friendly_names=False)

        expected1 = {
            'KEY1': 0,
            'KEY_TWO_TWO': 1,
            'SOME_KEY_SOME_SOME': 2
        }

        expected2 = {
            'Key1': 0,
            'Key Two Two': 1,
            'Some Key Some Some': 2
        }

        expected3 = {
            0: 'KEY1',
            1: 'KEY_TWO_TWO',
            2: 'SOME_KEY_SOME_SOME'
        }
        self.assertDictEqual(result1, expected1)
        self.assertDictEqual(result2, expected2)
        self.assertDictEqual(result1_reversed, expected3)
Example #2
0
    def take_action(self, parsed_args):
        client = get_client(parsed_args)

        available_algorithms = get_enum_as_dict(Algorithm, True)
        algorithms = client.list_supported_algorithms()

        result = []
        for algorithm, id in available_algorithms.items():
            if id in algorithms:
                result.append(AlgorithmModel({'id': id,
                                              'algorithm': algorithm}))

        collection = Collection(result)
        return collection.generate_output()
Example #3
0
# 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.

__all__ = [
    'Balancer',
    'Member',
    'Algorithm'
]

from libcloud.loadbalancer.types import State

from raxcli.utils import get_enum_as_dict
from raxcli.models import Attribute, Model

STATES = get_enum_as_dict(State, reverse=True)


def state_to_string(value):
    return STATES[value]


class Balancer(Model):
    id = Attribute()
    name = Attribute()
    state = Attribute(transform_func=state_to_string)
    ip = Attribute()
    port = Attribute()


class Member(Model):