I believe this is not a boto error that was created to communicate with the AWS-API. Although most of the features of EC2-AWS work well with the EC2-OpenStack API, some functions are not implemented and they respond to an HTTP error of 500 or 400.
AWS uses VPC (Virtual Private Cloud) as a network and Availability Zone as a subnet. Both have a default setting that is executed if there is no additional specification when creating a new instance. But in OpenStack, I see no way to mark the network and subnet by default.
In my attempts, neither private_ip_address nor subnet_id works to specify the network / subnet in run_instances() , if there are more than one of them in OpenStack.
Edit: if you have only one network / subnet, the following code works fine with boto on trystack.org:
import boto conn = boto.connect_ec2_endpoint("http://8.21.28.222:8773/services/Cloud",aws_access_key_id='...',aws_secret_access_key='...') new_instance = conn.run_instances("ami-00000020", key_name="trystack", security_groups=["default"], instance_type="m1.small")
source share