예제 #1
0
def create_euca_provider():
    provider_type = ProviderType.objects.get_or_create(name='Eucalyptus')[0]
    platform_type = PlatformType.objects.get_or_create(name='Xen')[0]
    euca = Provider.objects.get_or_create(location='EUCALYPTUS',
                                          virtualization=platform_type,
                                          type=provider_type)[0]
    ProviderCredential.objects.get_or_create(
        key='ec2_url', value=secrets.EUCA_EC2_URL, provider=euca)
    ProviderCredential.objects.get_or_create(
        key='s3_url', value=secrets.EUCA_S3_URL, provider=euca)
    ProviderCredential.objects.get_or_create(
        key='euca_cert_path', value=secrets.EUCALYPTUS_CERT_PATH,
         provider=euca)
    ProviderCredential.objects.get_or_create(
        key='pk_path', value=secrets.EUCA_PRIVATE_KEY,
         provider=euca)
    ProviderCredential.objects.get_or_create(
        key='ec2_cert_path', value=secrets.EC2_CERT_PATH,
         provider=euca)
    ProviderCredential.objects.get_or_create(
        key='account_path', value='/services/Accounts',
         provider=euca)
    ProviderCredential.objects.get_or_create(
        key='config_path', value='/services/Configuration',
         provider=euca)
    identity = Identity.create_identity('admin', euca.location,
        account_admin=True,
        cred_key=secrets.EUCA_ADMIN_KEY,
        cred_secret=secrets.EUCA_ADMIN_SECRET)
    return identity
예제 #2
0
def create_os_provider():
    provider_type = ProviderType.objects.get_or_create(name='OpenStack')[0]
    platform_type = PlatformType.objects.get_or_create(name='KVM')[0]
    identities = []
    #TODO: Make platform_type a variable when we encounter a NON-KVM OStack..
    for provider in secrets.TEST_PROVIDERS['openstack']:
        try:
            os_provider = Provider.objects.get(
                virtualization=platform_type,
                type=provider_type,
                location=provider['label'])
        except Provider.DoesNotExist:
            os_provider = Provider.objects.create(
                virtualization=platform_type,
                type=provider_type, uuid=str(uuid4()),
                location=provider['label'])
        ProviderCredential.objects.get_or_create(key='auth_url',
                value=provider['auth_url'], provider=os_provider)
        ProviderCredential.objects.get_or_create(key='admin_url',
                value=provider['admin_url'], provider=os_provider)
        ProviderCredential.objects.get_or_create(key='router_name',
                value=provider['default_router'], provider=os_provider)
        ProviderCredential.objects.get_or_create(key='region_name',
                value=provider['default_region'], provider=os_provider)
        identity = Identity.create_identity(
            provider['key'], provider['label'],
            account_admin=True,
            cred_key=provider['key'], cred_secret=provider['secret'],
            cred_ex_tenant_name=provider['tenant_name'],
            cred_ex_project_name=provider['tenant_name'])
        identities.append(identity)
    return identities[0]
예제 #3
0
 def _create_identity(self, provider_uuid, username, project_name, token):
     try:
         provider = Provider.objects.get(uuid=provider_uuid)
     except Provider.DoesNotExist:
         raise serializers.ValidationError("Provider %s is invalid" % provider)
     identity = Identity.create_identity(
         username, provider.location,
         cred_key=username, cred_ex_project_name=project_name, cred_ex_force_auth_token=token)
     # FIXME: In a different PR re-work quota to sync with the values in OpenStack. otherwise the value assigned (default) will differ from the users _actual_ quota in openstack.
     self.validate_token_with_driver(provider_uuid, username, project_name, token)
     return identity