def setUp(self):
     #Initialize core DB
     self.euca_admin_id = create_euca_provider()
     self.euca_provider = self.euca_admin_id.provider
     self.os_admin_id = create_os_provider()
     self.os_provider = self.os_admin_id.provider
     #Ensure there is an account created/ready to go
     euca_accounts = EucaAccounts(self.euca_provider)
     euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
     self.euca_id = euca_accounts.create_account(euca_user)
     os_accounts = OSAccounts(self.os_provider)
     self.os_id = os_accounts.create_account(
         settings.TEST_RUNNER_USER,
         os_accounts.hashpass(settings.TEST_RUNNER_USER))
     #Initialize API
     self.api_client = TokenAPIClient()
     self.api_client.login(username=settings.TEST_RUNNER_USER,
                           password=settings.TEST_RUNNER_PASS)
     reverse_link = reverse('api:public_apis:machine-list',
                            args=[self.os_id.provider.id, self.os_id.id])
     self.os_machine_url = urljoin(settings.SERVER_URL, reverse_link)
     reverse_link = reverse(
         'api:public_apis:machine-list',
         args=[self.euca_id.provider.id, self.euca_id.id])
     self.euca_machine_url = urljoin(settings.SERVER_URL, reverse_link)
def main():
    """
    TODO: Add argparse, --delete : Deletes existing users in eucalyptus (Never use in PROD)
    """
    euca = Provider.objects.get(location='Eucalyptus (retiring March 4)')
    euca_driver = EucaAccountDriver(euca)
    openstack = Provider.objects.get(location='iPlant Cloud - Tucson')
    os_driver = OSAccountDriver(openstack)
    all_users = euca_driver.list_users()
    #Sort by users
    all_values = sorted(all_users.values(), key=lambda user: user['username'])
    total = 0
    for user_dict in all_values:
        id_exists = Identity.objects.filter(
                created_by__username=user_dict['username'],
                provider=euca)
        if not id_exists:
            euca_driver.create_account(user_dict)
            total += 1
            print "Added to Eucalyptus: %s" % user_dict['username']
    print "Total users added:%s" % total
    if include_openstack:
        print "Adding all eucalyptus users to openstack"
        total = 0
        for user_dict in all_values:
            id_exists = Identity.objects.filter(
                    created_by__username=user_dict['username'],
                                    provider=openstack)
            if not id_exists:
                os_driver.create_account(user_dict['username'])
                total += 1
                print "Added to Openstack: %s" % user_dict['username']
        print "Total users added to openstack:%s" % total
def main():
    """
    TODO: Add argparse, --delete : Deletes existing users in eucalyptus (Never use in PROD)
    """
    euca = Provider.objects.get(location="Eucalyptus (retiring March 4)")
    euca_driver = EucaAccountDriver(euca)
    openstack = Provider.objects.get(location="iPlant Cloud - Tucson")
    os_driver = OSAccountDriver(openstack)
    all_users = euca_driver.list_users()
    # Sort by users
    all_values = sorted(all_users.values(), key=lambda user: user["username"])
    total = 0
    for user_dict in all_values:
        id_exists = Identity.objects.filter(created_by__username=user_dict["username"], provider=euca)
        if not id_exists:
            euca_driver.create_account(user_dict)
            total += 1
            print "Added to Eucalyptus: %s" % user_dict["username"]
    print "Total users added:%s" % total
    if include_openstack:
        print "Adding all eucalyptus users to openstack"
        total = 0
        for user_dict in all_values:
            id_exists = Identity.objects.filter(created_by__username=user_dict["username"], provider=openstack)
            if not id_exists:
                os_driver.create_account(user_dict["username"])
                total += 1
                print "Added to Openstack: %s" % user_dict["username"]
        print "Total users added to openstack:%s" % total
Exemple #4
0
 def setUp(self):
     #Initialize core DB
     self.euca_admin_id = create_euca_provider()
     self.euca_provider = self.euca_admin_id.provider
     self.os_admin_id = create_os_provider()
     self.os_provider = self.os_admin_id.provider
     #Ensure there is an account created/ready to go
     euca_accounts = EucaAccounts(self.euca_provider)
     euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
     self.euca_id = euca_accounts.create_account(euca_user)
     os_accounts = OSAccounts(self.os_provider)
     self.os_id = os_accounts.create_account(
             settings.TEST_RUNNER_USER, 
             os_accounts.hashpass(settings.TEST_RUNNER_USER))
     #Initialize API
     self.api_client = TokenAPIClient()
     self.api_client.login(
             username=settings.TEST_RUNNER_USER,
             password=settings.TEST_RUNNER_PASS)
     reverse_link = reverse('api:public_apis:machine-list',
                            args=[self.os_id.provider.id,
                                  self.os_id.id])
     self.os_machine_url = urljoin(settings.SERVER_URL, reverse_link)
     reverse_link = reverse('api:public_apis:machine-list',
                           args=[self.euca_id.provider.id,
                                 self.euca_id.id])
     self.euca_machine_url = urljoin(settings.SERVER_URL, reverse_link)
Exemple #5
0
    def post(self, request):
        """
        User Class:
        Create a new user in the database
        Returns success 200 OK - NO BODY on creation
        """
        params = request.DATA
        user = request.user
        if user.username is not 'admin' or not user.is_superuser:
            return Response('Only admin and superusers can create accounts',
                            status=status.HTTP_401_UNAUTHORIZED)

        username = params['username']
        #STEP1 Create the account on the provider
        provider = Provider.objects.get(location='EUCALYPTUS')
        driver = AccountDriver(provider)
        user = driver.add_user(username)
        #STEP2 Retrieve the identity from the provider
        if user:
            user_keys = driver.get_key(username)
            driver.create_key(user_keys)
        #STEP3 Return the new users serialized profile
        serialized_data = ProfileSerializer(user.get_profile()).data
        response = Response(serialized_data)
        return response
Exemple #6
0
 def setUp(self):
     #Initialize API
     self.euca_admin_id = create_euca_provider()
     self.euca_provider = self.euca_admin_id.provider
     euca_accounts = EucaAccounts(self.euca_provider)
     euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
     self.euca_id = euca_accounts.create_account(euca_user)
Exemple #7
0
 def setUp(self):
     #Initialize API
     self.euca_admin_id = create_euca_provider()
     self.euca_provider = self.euca_admin_id.provider
     euca_accounts = EucaAccounts(self.euca_provider)
     euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
     self.euca_id = euca_accounts.create_account(euca_user)
Exemple #8
0
    def setUp(self):
        #Initialize core DB
        self.euca_admin_id = create_euca_provider()
        self.euca_provider = self.euca_admin_id.provider
        self.os_admin_id = create_os_provider()
        self.os_provider = self.os_admin_id.provider
        #Ensure there is an account created/ready to go
        euca_accounts = EucaAccounts(self.euca_provider)
        euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
        self.euca_id = euca_accounts.create_account(euca_user, max_quota=True)
        os_accounts = OSAccounts(self.os_provider)
        self.os_id = os_accounts.create_account(settings.TEST_RUNNER_USER,
                                                os_accounts.hashpass(
                                                    settings.TEST_RUNNER_USER),
                                                max_quota=True)
        #user = AtmosphereUser.objects.get(username=settings.TEST_RUNNER_USER)
        #user.is_staff = True
        #user.is_superuser = True
        #user.save()
        #Initialize API
        self.api_client = TokenAPIClient()
        self.api_client.login(username=settings.TEST_RUNNER_USER,
                              password=settings.TEST_RUNNER_PASS)
        reverse_link = reverse('api:public_apis:instance-list',
                               args=[self.os_id.provider.id, self.os_id.id])
        self.os_instance_url = urljoin(settings.SERVER_URL, reverse_link)
        reverse_link = reverse('api:public_apis:volume-list',
                               args=[self.os_id.provider.id, self.os_id.id])
        #Prepare Openstack
        self.os_volume_url = urljoin(settings.SERVER_URL, reverse_link)
        instance_data = {
            "size_alias": "2",
            "machine_alias": "0f539197-3718-40bc-8a29-c22e0841684f",
            "name": "test volume attachment",
            "delete_before": False
        }
        (self.os_instance_id,
         self.os_instance_ip) = standup_instance(self, self.os_instance_url,
                                                 **instance_data)

        #Prepare Eucalyptus
        reverse_link = reverse(
            'api:public_apis:volume-list',
            args=[self.euca_id.provider.id, self.euca_id.id])
        self.euca_volume_url = urljoin(settings.SERVER_URL, reverse_link)
        reverse_link = reverse(
            'api:public_apis:instance-list',
            args=[self.euca_id.provider.id, self.euca_id.id])
        self.euca_instance_url = urljoin(settings.SERVER_URL, reverse_link)
        instance_data = {
            "size_alias": "m1.small",
            "machine_alias": "emi-E7F8300F",
            "name": "test volume attachment",
            "delete_before": False
        }
        (self.euca_instance_id,
         self.euca_instance_ip) = standup_instance(self,
                                                   self.euca_instance_url,
                                                   **instance_data)
Exemple #9
0
    def setUp(self):
        #Initialize core DB
        self.euca_admin_id = create_euca_provider()
        self.euca_provider = self.euca_admin_id.provider
        self.os_admin_id = create_os_provider()
        self.os_provider = self.os_admin_id.provider
        #Ensure there is an account created/ready to go
        euca_accounts = EucaAccounts(self.euca_provider)
        euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
        self.euca_id = euca_accounts.create_account(euca_user, max_quota=True)
        os_accounts = OSAccounts(self.os_provider)
        self.os_id = os_accounts.create_account(
                settings.TEST_RUNNER_USER, 
                os_accounts.hashpass(settings.TEST_RUNNER_USER), max_quota=True)
        #user = AtmosphereUser.objects.get(username=settings.TEST_RUNNER_USER)
        #user.is_staff = True
        #user.is_superuser = True
        #user.save()
        #Initialize API
        self.api_client = TokenAPIClient()
        self.api_client.login(
                username=settings.TEST_RUNNER_USER,
                password=settings.TEST_RUNNER_PASS)
        reverse_link = reverse('api:public_apis:instance-list',
                              args=[self.os_id.provider.id,
                                    self.os_id.id])
        self.os_instance_url = urljoin(settings.SERVER_URL, reverse_link)
        reverse_link = reverse('api:public_apis:volume-list',
                               args=[self.os_id.provider.id,
                                     self.os_id.id])
        #Prepare Openstack
        self.os_volume_url = urljoin(settings.SERVER_URL, reverse_link)
        instance_data = {
                "size_alias":"2",
                "machine_alias":"0f539197-3718-40bc-8a29-c22e0841684f",
                "name":"test volume attachment",
                "delete_before":False
            }
        (self.os_instance_id, self.os_instance_ip) = standup_instance(
                self, self.os_instance_url, **instance_data)

        #Prepare Eucalyptus
        reverse_link = reverse('api:public_apis:volume-list',
                              args=[self.euca_id.provider.id,
                                    self.euca_id.id])
        self.euca_volume_url = urljoin(settings.SERVER_URL, reverse_link)
        reverse_link = reverse('api:public_apis:instance-list',
                              args=[self.euca_id.provider.id,
                                    self.euca_id.id])
        self.euca_instance_url = urljoin(settings.SERVER_URL, reverse_link)
        instance_data = {
                "size_alias":"m1.small",
                "machine_alias":"emi-E7F8300F",
                "name":"test volume attachment",
                "delete_before":False
            }
        (self.euca_instance_id, self.euca_instance_ip) = standup_instance(
                self, self.euca_instance_url, **instance_data)
Exemple #10
0
def setUp_euca():
    euca_admin_id = create_euca_provider()
    euca_provider = euca_admin_id.provider
    # Ensure there is an account created/ready to go
    euca_accounts = EucaAccounts(euca_provider)
    euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
    euca_id = euca_accounts.create_account(euca_user, max_quota=True)
    reverse_link = reverse("instance-list", args=[euca_id.provider.id, euca_id.id])
    euca_instance_url = urljoin(settings.SERVER_URL, reverse_link)
Exemple #11
0
def setUp_euca():
    euca_admin_id = create_euca_provider()
    euca_provider = euca_admin_id.provider
    #Ensure there is an account created/ready to go
    euca_accounts = EucaAccounts(euca_provider)
    euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
    euca_id = euca_accounts.create_account(euca_user, max_quota=True)
    reverse_link = reverse('api:public_apis:instance-list',
                           args=[euca_id.provider.id, euca_id.id])
    euca_instance_url = urljoin(settings.SERVER_URL, reverse_link)
Exemple #12
0
 def setUp(self):
     #Initialize API
     self.euca_admin_id = create_euca_provider()
     self.euca_provider = self.euca_admin_id.provider
     euca_accounts = EucaAccounts(self.euca_provider)
     euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
     self.euca_id = euca_accounts.create_account(euca_user)
     self.api_client = TokenAPIClient()
     self.api_client.login(username=settings.TEST_RUNNER_USER,
                           password=settings.TEST_RUNNER_PASS)
Exemple #13
0
 def setUp(self):
     #Initialize API
     self.euca_admin_id = create_euca_provider()
     self.euca_provider = self.euca_admin_id.provider
     euca_accounts = EucaAccounts(self.euca_provider)
     euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
     self.euca_id = euca_accounts.create_account(euca_user)
     self.api_client = TokenAPIClient()
     self.api_client.login(
             username=settings.TEST_RUNNER_USER,
             password=settings.TEST_RUNNER_PASS)
Exemple #14
0
def main():
    """
    TODO: Add argparse, --delete : Deletes existing users in openstack
          (Never use in PROD)
    """
    euca_driver = EucaAccountDriver(
        Provider.objects.get(location='EUCALYPTUS'))
    os_driver = OSAccountDriver(Provider.objects.get(location='iPlant Cloud - Tucson'))
    found = 0
    create = 0
    core_services = ['estevetest03', ]  # get_core_services()
    for user in core_services:
        euca_driver.create_account(user, max_quota=True)
        # Then add the Openstack Identity
        os_driver.create_account(user, max_quota=True)
        make_admin(user)
    print "Total core-service/admins added:%s" % len(core_services)
def main():
    """
    TODO: Add argparse, --delete : Deletes existing users in openstack
          (Never use in PROD)
    """
    euca_driver = EucaAccountDriver(
        Provider.objects.get(location='EUCALYPTUS'))
    os_driver = OSAccountDriver(Provider.objects.get(location='OpenStack-Tucson (BETA)'))
    found = 0
    create = 0
    core_services = ['estevetest03', ]  # get_core_services()
    for user in core_services:
        euca_driver.create_account(user, max_quota=True)
        # Then add the Openstack Identity
        os_driver.create_account(user, max_quota=True)
        make_admin(user)
    print "Total core-service/admins added:%s" % len(core_services)
def main():
    """
    TODO: Add argparse, --delete : Deletes existing users in openstack
          (Never use in PROD)
    """
    euca_driver = EucaAccountDriver(
        Provider.objects.get(location='EUCALYPTUS'))
    os_driver = OSAccountDriver(Provider.objects.get(location='iPlant Cloud - Tucson'))
    found = 0
    create = 0
    raise Exception("Must manually set core_services!! See Line 30.")
    core_services = ['jchansen', ] # get_core_services() # ['estevetest03', ]
    for user in core_services:
        euca_driver.create_account(user, max_quota=True)
        # Then add the Openstack Identity
        os_driver.create_account(user, max_quota=True)
        make_admin(user)
    print "Total core-service/admins added:%s" % len(core_services)
Exemple #17
0
    def post(self, request):
        """
        User Class:
        Create a new user in the database
        Returns success 200 OK - NO BODY on creation
        """
        params = request.DATA
        user = request.user
        if user.username is not 'admin' or not user.is_superuser:
            return Response('Only admin and superusers can create accounts',
                            status=status.HTTP_401_UNAUTHORIZED)

        username = params['username']
        #STEP1 Create the account on the provider
        provider = Provider.objects.get(location='EUCALYPTUS')
        driver = AccountDriver(provider)
        user = driver.add_user(username)
        #STEP2 Retrieve the identity from the provider
        if user:
            user_keys = driver.get_key(username)
            driver.create_key(user_keys)
        #STEP3 Return the new users serialized profile
        serialized_data = ProfileSerializer(user.get_profile()).data
        response = Response(serialized_data)
        return response
 def setUp(self):
     #Initialize core DB
     self.euca_admin_id = create_euca_provider()
     self.euca_provider = self.euca_admin_id.provider
     self.os_admin_id = create_os_provider()
     self.os_provider = self.os_admin_id.provider
     #Ensure there is an account created/ready to go
     euca_accounts = EucaAccounts(self.euca_provider)
     euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
     self.euca_id = euca_accounts.create_account(euca_user, max_quota=True)
     os_accounts = OSAccounts(self.os_provider)
     self.os_id = os_accounts.create_account(
             settings.TEST_RUNNER_USER, 
             os_accounts.hashpass(settings.TEST_RUNNER_USER), max_quota=True)
     user = AtmosphereUser.objects.get(username=settings.TEST_RUNNER_USER)
     user.is_staff = True
     user.is_superuser = True
     user.save()
     #Initialize API
     self.api_client = TokenAPIClient()
     self.api_client.login(
             username=settings.TEST_RUNNER_USER,
             password=settings.TEST_RUNNER_PASS)
     reverse_link = reverse('instance-list',
                            args=[self.os_id.provider.id,
                                  self.os_id.id])
     self.os_instance_url = urljoin(settings.SERVER_URL, reverse_link)
     reverse_link = reverse('instance-list',
                           args=[self.euca_id.provider.id,
                                 self.euca_id.id])
     self.euca_instance_url = urljoin(settings.SERVER_URL, reverse_link)
     reverse_link = reverse('machine-request-list',
                            args=[self.os_id.provider.id,
                                  self.os_id.id])
     self.os_request_url = urljoin(settings.SERVER_URL, reverse_link)
     reverse_link = reverse('machine-request-list',
                           args=[self.euca_id.provider.id,
                                 self.euca_id.id])
     self.euca_request_url = urljoin(settings.SERVER_URL, reverse_link)
 def setUp(self):
     #Initialize core DB
     self.euca_admin_id = create_euca_provider()
     self.euca_provider = self.euca_admin_id.provider
     self.os_admin_id = create_os_provider()
     self.os_provider = self.os_admin_id.provider
     #Ensure there is an account created/ready to go
     euca_accounts = EucaAccounts(self.euca_provider)
     euca_user = euca_accounts.get_user(settings.TEST_RUNNER_USER)
     self.euca_id = euca_accounts.create_account(euca_user, max_quota=True)
     os_accounts = OSAccounts(self.os_provider)
     self.os_id = os_accounts.create_account(settings.TEST_RUNNER_USER,
                                             os_accounts.hashpass(
                                                 settings.TEST_RUNNER_USER),
                                             max_quota=True)
     user = AtmosphereUser.objects.get(username=settings.TEST_RUNNER_USER)
     user.is_staff = True
     user.is_superuser = True
     user.save()
     #Initialize API
     self.api_client = TokenAPIClient()
     self.api_client.login(username=settings.TEST_RUNNER_USER,
                           password=settings.TEST_RUNNER_PASS)
     reverse_link = reverse('api:public_apis:instance-list',
                            args=[self.os_id.provider.id, self.os_id.id])
     self.os_instance_url = urljoin(settings.SERVER_URL, reverse_link)
     reverse_link = reverse(
         'api:public_apis:instance-list',
         args=[self.euca_id.provider.id, self.euca_id.id])
     self.euca_instance_url = urljoin(settings.SERVER_URL, reverse_link)
     reverse_link = reverse('api:public_apis:machine-request-list',
                            args=[self.os_id.provider.id, self.os_id.id])
     self.os_request_url = urljoin(settings.SERVER_URL, reverse_link)
     reverse_link = reverse(
         'api:public_apis:machine-request-list',
         args=[self.euca_id.provider.id, self.euca_id.id])
     self.euca_request_url = urljoin(settings.SERVER_URL, reverse_link)