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")
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")