Remove instance disk - always use same sutom disk
diff --git a/ec2stack/configure.py b/ec2stack/configure.py
index 5c4ffee..cc2e6f6 100644
--- a/ec2stack/configure.py
+++ b/ec2stack/configure.py
@@ -168,16 +168,6 @@
     @param profile: the profile to set the attribute in.
     @return: configparser configuration.
     """
-
-    configure_instance_disk = raw_input(
-        'Do you wish to input a second custom storage disk for instances? (Yes/No): '
-    )
-
-    if configure_instance_disk.lower() in ['yes', 'y']:
-        config = _set_attribute_of_profile(
-            config, profile, 'cloudstack_instance_custom_disk_offering', 'Cloudstack custom instance disk offering name', 'CustomInstance'
-        )
-
     configure_instance_type_mapings = raw_input(
         'Do you wish to input instance type mappings? (Yes/No): '
     )
diff --git a/ec2stack/providers/cloudstack/instances.py b/ec2stack/providers/cloudstack/instances.py
index 3e8115b..01d2127 100644
--- a/ec2stack/providers/cloudstack/instances.py
+++ b/ec2stack/providers/cloudstack/instances.py
@@ -178,14 +178,9 @@
     if helpers.get('BlockDeviceMapping.1.Ebs.VolumeType') is not None:
         disk_type = helpers.get('BlockDeviceMapping.1.Ebs.VolumeType')
         if disk_type == 'gp2':
-             if 'CLOUDSTACK_INSTANCE_CUSTOM_DISK_OFFERING' in current_app.config:
-                args['diskofferingid'] = disk_offerings.get_disk_offering(
-                    current_app.config['CLOUDSTACK_INSTANCE_CUSTOM_DISK_OFFERING']
-                )['id']
-             else:
-                errors.invalid_request(
-                    "Unable to configure secondary disk, please run ec2stack-configure and choose to "
-                    "configure an instance disk")
+            args['diskofferingid'] = disk_offerings.get_disk_offering(
+                current_app.config['CLOUDSTACK_CUSTOM_DISK_OFFERING']
+            )['id']
 
         if helpers.get('BlockDeviceMapping.1.Ebs.VolumeSize') is None:
             errors.invalid_request("VolumeSize not found in BlockDeviceMapping")
diff --git a/pylint.rc b/pylint.rc
index c45bc02..1819a65 100644
--- a/pylint.rc
+++ b/pylint.rc
@@ -236,7 +236,7 @@
 max-returns=6
 
 # Maximum number of branch for function / method body
-max-branchs=12
+max-branches=16
 
 # Maximum number of statements in function / method body
 max-statements=50
diff --git a/tests/instances_tests.py b/tests/instances_tests.py
index f1986c2..a53fa0b 100644
--- a/tests/instances_tests.py
+++ b/tests/instances_tests.py
@@ -315,6 +315,118 @@
         self.assert_ok(response)
         assert 'RunInstancesResponse' in response.data
 
+    def test_run_instance_gp2(self):
+        data = self.get_example_data()
+        data['Action'] = 'RunInstances'
+        data['ImageId'] = 'a32d70ee-95e4-11e3-b2e4-d19c9d3e5e1d'
+        data['MinCount'] = '0'
+        data['MaxCount'] = '0'
+        data['SecurityGroupId.1'] = 'example-security-group-id'
+        data['SecurityGroup.1'] = 'example-security-group-name'
+        data['KeyName'] = 'example-ssh-key-name'
+        data['UserData'] = 'example-user-data'
+        data['BlockDeviceMapping.1.Ebs.VolumeType'] = 'gp2'
+        data['BlockDeviceMapping.1.Ebs.VolumeSize'] = '20'
+        data['Signature'] = generate_signature(data, 'POST', 'localhost', '/')
+
+        get = mock.Mock()
+        get.return_value.text = read_file(
+            'tests/data/valid_run_instance.json'
+        )
+        get.return_value.status_code = 200
+
+        get_disk_offering = mock.Mock()
+        get_disk_offering.return_value = json.loads(read_file(
+            'tests/data/disk_offering_search.json'
+        ))
+
+        get_service_offering = mock.Mock()
+        get_service_offering.return_value = json.loads(read_file(
+            'tests/data/service_offering_search.json'
+        ))
+
+        get_zone = mock.Mock()
+        get_zone.return_value = json.loads(read_file(
+            'tests/data/zones_search.json'
+        ))
+
+        with mock.patch('requests.get', get):
+            with mock.patch(
+                    'ec2stack.providers.cloudstack.disk_offerings.get_disk_offering',
+                    get_disk_offering
+            ):
+                with mock.patch(
+                        'ec2stack.providers.cloudstack.service_offerings.get_service_offering',
+                        get_service_offering
+                ):
+                    with mock.patch(
+                            'ec2stack.providers.cloudstack.zones.get_zone',
+                            get_zone
+                    ):
+                        response = self.post(
+                            '/',
+                            data=data
+                        )
+
+        self.assert_ok(response)
+        assert 'RunInstancesResponse' in response.data
+
+    def test_run_instance_gp2_no_volume_size(self):
+        data = self.get_example_data()
+        data['Action'] = 'RunInstances'
+        data['ImageId'] = 'a32d70ee-95e4-11e3-b2e4-d19c9d3e5e1d'
+        data['MinCount'] = '0'
+        data['MaxCount'] = '0'
+        data['SecurityGroupId.1'] = 'example-security-group-id'
+        data['SecurityGroup.1'] = 'example-security-group-name'
+        data['KeyName'] = 'example-ssh-key-name'
+        data['UserData'] = 'example-user-data'
+        data['BlockDeviceMapping.1.Ebs.VolumeType'] = 'gp2'
+        data['Signature'] = generate_signature(data, 'POST', 'localhost', '/')
+
+        get = mock.Mock()
+        get.return_value.text = read_file(
+            'tests/data/valid_run_instance.json'
+        )
+        get.return_value.status_code = 200
+
+        get_disk_offering = mock.Mock()
+        get_disk_offering.return_value = json.loads(read_file(
+            'tests/data/disk_offering_search.json'
+        ))
+
+        get_service_offering = mock.Mock()
+        get_service_offering.return_value = json.loads(read_file(
+            'tests/data/service_offering_search.json'
+        ))
+
+        get_zone = mock.Mock()
+        get_zone.return_value = json.loads(read_file(
+            'tests/data/zones_search.json'
+        ))
+
+        with mock.patch('requests.get', get):
+            with mock.patch(
+                    'ec2stack.providers.cloudstack.disk_offerings.get_disk_offering',
+                    get_disk_offering
+            ):
+                with mock.patch(
+                        'ec2stack.providers.cloudstack.service_offerings.get_service_offering',
+                        get_service_offering
+                ):
+                    with mock.patch(
+                            'ec2stack.providers.cloudstack.zones.get_zone',
+                            get_zone
+                    ):
+                        response = self.post(
+                            '/',
+                            data=data
+                        )
+
+        self.assert_bad_request(response)
+        assert 'VolumeSize not found in BlockDeviceMapping' in response.data
+
+
     def test_run_instance_with_zone_and_type_(self):
         data = self.get_example_data()
         data['Action'] = 'RunInstances'