maestro-server/analytics-maestro

View on GitHub
app/libs/dcApp.py

Summary

Maintainability
A
1 hr
Test Coverage
F
26%
class DcApps(object):
    allowed = ['aws', 'openstack', 'azure', 'google cloudengine', 'digital ocean', 'linode', 'rackspace', 'heroku', 'ovh', 'godaddy']

    @staticmethod
    def byServer(server, dft='premise'):

        if isinstance(server, dict):
            dc = server.get('datacenters')
            if dc:
                provider = dc.get('provider')

                if provider:
                    provider = provider.lower()

                    if provider in DcApps.allowed:
                        return provider

        return dft

    @staticmethod
    def byApps(node):
        obj = node
        servers = node.get('servers', [])

        if len(servers) > 0:
            obj = servers[0]

        return DcApps.byServer(obj)