def start_Ec2server(request, *args, **kwargs):

    """
    API endpoint that starts an EC2 instance
    """
    permission_classes = (IsAuthenticatedOrReadOnly,)
    appid = kwargs.get('appid')
    fileid = kwargs.get('fileid')
    endpoint = request.DATA.get('endpoint')
    recordId = request.DATA.get('recordId')
    key_alias = request.DATA.get('alias')
    instance_type = request.DATA.get('resource_type')
    appTag = request.DATA.get('appTag')
    cloud = recordId.split(':')[0]
    imageRecord = recordId.split(':')[1]
    errormessage = ""

    if endpoint is not None and key_alias is not None and instance_type is not None:
        creds = UserCloudCredentials.objects.filter(user_id=request.user, endpoint=endpoint, key_alias=key_alias)
        print creds[0].access_key, creds[0].secret_key
        image_info = ApplicationEC2Images.objects.get(id=appid)
        return launch_views.start_server(appid, creds[0], endpoint,cloud,imageRecord,appTag,instance_type, image_info.id, image_info, request)
    else:
        post_data = {'endpoint': endpoint, 'key_alias': key_alias, 'instance_type': instance_type}
        keys_not_in_data = [k for k, v in post_data.items() if v is None]
        if len(keys_not_in_data) == 1:
            errormessage = 'The key' + keys_not_in_data[0] + ' was needed but was not posted'
        elif len(keys_not_in_data) > 1:
            errormessage = 'The following keys' + keys_not_in_data + ' were needed but was not posted'
        else:
            errormessage = 'Post Data not in right format!'
        return HttpResponse(json.dumps({'appid': appid, 'error_status': "1", 'errormsg': errormessage}),
                            content_type="application/json")
def start_OpenstackServer(request, *args, **kwargs):

    """
    API endpoint that starts an openstack server
    """

    permission_classes = (IsAuthenticatedOrReadOnly,)
    appid = kwargs.get('appid')
    fileid = kwargs.get('fileid')
    endpoint = request.DATA.get('endpoint')
    key_alias = request.DATA.get('alias')
    instance_type = request.DATA.get('resource_type')
    recordId = request.DATA.get('recordId')
    appTag = request.DATA.get('appTag')
    cloud = recordId.split(':')[0]
    imageRecord = recordId.split(':')[1]

    print "Endpoint is" + endpoint
    if endpoint is not None and key_alias is not None and instance_type is not None:
        creds = UserCloudCredentials.objects.filter(user_id=request.user, endpoint=endpoint, key_alias=key_alias)
        print creds[0].access_key, creds[0].secret_key
        image_info = ApplicationOpenstackImages.objects.get(id=appid)
        return launch_views.start_server(appid, creds[0], endpoint, cloud,imageRecord,appTag,instance_type,image_info.id, request)

    else:
        return HttpResponse(
            json.dumps({'appid': appid, 'error_status': "1", 'errormsg': 'Post Data not in right format!'}),
            content_type="application/json")
Ejemplo n.º 3
0
def start_Ec2server(request, *args, **kwargs):
    """
    API endpoint that starts an EC2 instance
    """
    permission_classes = (IsAuthenticatedOrReadOnly, )
    appid = kwargs.get('appid')
    fileid = kwargs.get('fileid')
    endpoint = request.DATA.get('endpoint')
    recordId = request.DATA.get('recordId')
    key_alias = request.DATA.get('alias')
    instance_type = request.DATA.get('resource_type')
    appTag = request.DATA.get('appTag')
    cloud = recordId.split(':')[0]
    imageRecord = recordId.split(':')[1]
    errormessage = ""

    if endpoint is not None and key_alias is not None and instance_type is not None:
        creds = UserCloudCredentials.objects.filter(user_id=request.user,
                                                    endpoint=endpoint,
                                                    key_alias=key_alias)
        print creds[0].access_key, creds[0].secret_key
        image_info = ApplicationEC2Images.objects.get(id=appid)
        return launch_views.start_server(appid, creds[0], endpoint, cloud,
                                         imageRecord, appTag, instance_type,
                                         image_info.id, image_info, request)
    else:
        post_data = {
            'endpoint': endpoint,
            'key_alias': key_alias,
            'instance_type': instance_type
        }
        keys_not_in_data = [k for k, v in post_data.items() if v is None]
        if len(keys_not_in_data) == 1:
            errormessage = 'The key' + keys_not_in_data[
                0] + ' was needed but was not posted'
        elif len(keys_not_in_data) > 1:
            errormessage = 'The following keys' + keys_not_in_data + ' were needed but was not posted'
        else:
            errormessage = 'Post Data not in right format!'
        return HttpResponse(json.dumps({
            'appid': appid,
            'error_status': "1",
            'errormsg': errormessage
        }),
                            content_type="application/json")
Ejemplo n.º 4
0
def start_OpenstackServer(request, *args, **kwargs):
    """
    API endpoint that starts an openstack server
    """

    permission_classes = (IsAuthenticatedOrReadOnly, )
    appid = kwargs.get('appid')
    fileid = kwargs.get('fileid')
    endpoint = request.DATA.get('endpoint')
    key_alias = request.DATA.get('alias')
    instance_type = request.DATA.get('resource_type')
    recordId = request.DATA.get('recordId')
    appTag = request.DATA.get('appTag')
    cloud = recordId.split(':')[0]
    imageRecord = recordId.split(':')[1]

    print "Endpoint is" + endpoint
    if endpoint is not None and key_alias is not None and instance_type is not None:
        creds = UserCloudCredentials.objects.filter(user_id=request.user,
                                                    endpoint=endpoint,
                                                    key_alias=key_alias)
        print creds[0].access_key, creds[0].secret_key
        image_info = ApplicationOpenstackImages.objects.get(id=appid)
        return launch_views.start_server(appid, creds[0], endpoint, cloud,
                                         imageRecord, appTag, instance_type,
                                         image_info.id, request)

    else:
        return HttpResponse(json.dumps({
            'appid':
            appid,
            'error_status':
            "1",
            'errormsg':
            'Post Data not in right format!'
        }),
                            content_type="application/json")