예제 #1
0
def check_resources(args):
        invalid_resources = [] 
        valid_resources = 0
        for resource in args:
            valid_resource = resources.return_resource(resource)
            if valid_resource:
                valid_resources += 1
            else:
                invalid_resources.append(resource)
        if valid_resources != len(args):
            error_object = []
            error_object.append('Invalid resources specified:')
            error_object.append(invalid_resources)
            error_object.append('Please see yoda resources for available resources')
            raise yoda_kill(error_object)
        else: # we have valid resources
            return True
예제 #2
0
def grab(args):
    
    valid_switches = ['-c']
    curl_links = {}
    zips = {}

    # check we have args 
    
    if len(args['args']) < 1:
        error_object = []
        error_object.append('No resource specified')
        raise yoda_kill(error_object)
    
    else: # check resources
        check_resources(args['args'])
        
        # get the curl links
        for resource in args['args']:
            curl_links[resource] = resources.return_resource(resource)
        # get name of each zip
        for key, value in curl_links.iteritems():
            zips[key] = os.path.basename(value)
    
    # check if a switch was passed
    if args['switch']:
        # check if switch is valid
        if args['switch'] in valid_switches:
            print 'running code with switch: ' + args['switch']
            curl_resource(curl_links)
            yoda_unzip(zips)
            run_config(args['args'])
        
        else: # invalid switch given
            error_object = []
            error_object.append('Invalid switch specifed: ' + args['switch'])
            raise yoda_kill(error_object)
    # no switch passed
    else:
        print 'running without switch'
        curl_resource(curl_links)
        yoda_unzip(zips)