Esempio n. 1
0
def get_distributor(org_name, dist_name, env_name=None, dist_uuid=None):
    distributor_api = DistributorAPI()
    if dist_uuid:
        distributors = distributor_api.distributors_by_org(
            org_name, {'uuid': dist_uuid})
        if distributors is None:
            raise ApiDataError(_("Could not find Distributor [ %(dist_name)s ] in Org [ %(org_name)s ]") \
                % {'dist_name':dist_name, 'org_name':org_name})
        elif len(distributors) != 1:
            raise ApiDataError(_("Found ambiguous Distributors [ %(dist_uuid)s ] in Org [ %(org_name)s ]") \
                % {'dist_uuid':dist_uuid, 'org_name':org_name})
    elif env_name is None:
        distributors = distributor_api.distributors_by_org(
            org_name, {'name': dist_name})
        if distributors is None or len(distributors) == 0:
            raise ApiDataError(_("Could not find Distributor [ %(dist_name)s ] in Org [ %(org_name)s ]") \
                % {'dist_name':dist_name, 'org_name':org_name})
        elif len(distributors) != 1:
            raise ApiDataError( _("Found ambiguous Distributors [ %(dist_name)s ] " \
                "in Environment [ %(env_name)s ] in Org [ %(org_name)s ], "\
                "use --uuid to specify the distributor") % {'dist_name':dist_name, 'env_name':env_name,
                                                            'org_name':org_name})
    else:
        environment = get_environment(org_name, env_name)
        distributors = distributor_api.distributors_by_env(
            environment["id"], {'name': dist_name})
        if distributors is None:
            raise ApiDataError(_("Could not find Distributor [ %(dist_name)s ] " \
                "in Environment [ %(env_name)s ] in Org [ %(org_name)s ]") \
                % {'dist_name':dist_name, 'env_name':env_name, 'org_name':org_name})
        elif len(distributors) != 1:
            raise ApiDataError(_("Found ambiguous Distributors [ %(dist_name)s ] in Org [ %(org_name)s ], "\
                "you have to specify the environment") % {'dist_name':dist_name, 'org_name':org_name})

    return distributor_api.distributor(distributors[0]['uuid'])
Esempio n. 2
0
 def __init__(self):
     super(DistributorAction, self).__init__()
     self.api = DistributorAPI()