예제 #1
0
def main():
    """
    Generate openstack users then add them to the DB
    """
    driver = AccountDriver(secrets.OPENSTACK_ARGS)
    #Build the admin driver for openstack first.
    driver.create_identity(secrets.OPENSTACK_ADMIN_KEY,
            secrets.OPENSTACK_ADMIN_SECRET, secrets.OPENSTACK_ADMIN_TENANT,
            True)
    success = 1
    #Add the others
    core_services = ['atmo_test']#'sgregory', 'jmatt', 'edwins', 'cjlarose','mlent']
    for username in core_services:
        try:
            password = driver.hashpass(username)
            user = driver.get_user(username)
            if not user:
                user = driver.create_user(username, usergroup=True)
                print 'New OStack User - %s Pass - %s' % (user.name,password)
            else:
                print 'Found OStack User - %s Pass - %s' % (user.name,password)
            #ASSERT: User exists on openstack, create an identity for them.
            ident = driver.create_identity(user.name, password, project_name=username)
            success += 1
            print 'New OStack Identity - %s:%s' % (ident.id, ident)
        except Exception as e:
            print "Problem adding username: %s" % username
            print e
            raise

    print "Total users created:%s/%s" % (success,len(core_services))
예제 #2
0
def main():
    """
    Generate openstack users then add them to the DB
    """
    driver = AccountDriver(secrets.OPENSTACK_ARGS)
    #Build the admin driver for openstack first.
    driver.create_identity(secrets.OPENSTACK_ADMIN_KEY,
                           secrets.OPENSTACK_ADMIN_SECRET,
                           secrets.OPENSTACK_ADMIN_TENANT, True)
    success = 1
    #Add the others
    core_services = ['atmo_test'
                     ]  #'sgregory', 'jmatt', 'edwins', 'cjlarose','mlent']
    for username in core_services:
        try:
            password = driver.hashpass(username)
            user = driver.get_user(username)
            if not user:
                user = driver.create_user(username, usergroup=True)
                print 'New OStack User - %s Pass - %s' % (user.name, password)
            else:
                print 'Found OStack User - %s Pass - %s' % (user.name,
                                                            password)
            #ASSERT: User exists on openstack, create an identity for them.
            ident = driver.create_identity(user.name,
                                           password,
                                           project_name=username)
            success += 1
            print 'New OStack Identity - %s:%s' % (ident.id, ident)
        except Exception as e:
            print "Problem adding username: %s" % username
            print e
            raise

    print "Total users created:%s/%s" % (success, len(core_services))
예제 #3
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)
예제 #4
0
    def setUp(self):
        #Initialize core DB
        #Ensure there is an account created/ready to go

        #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, max_quota=True)

        self.os_admin_id = create_os_provider()
        self.os_provider = self.os_admin_id.provider
        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:machine-request-list',
                               args=[self.os_id.provider.id, self.os_id.id])
        self.os_request_url = urljoin(settings.SERVER_URL, reverse_link)
예제 #5
0
    def setUp(self):
        #Initialize core DB
        #Ensure there is an account created/ready to go

        #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, max_quota=True)

        self.os_admin_id = create_os_provider()
        self.os_provider = self.os_admin_id.provider
        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:v1: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:v1:machine-request-list',
                               args=[self.os_id.provider.id,
                                     self.os_id.id])
        self.os_request_url = urljoin(settings.SERVER_URL, reverse_link)
예제 #6
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)
예제 #7
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)
예제 #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)
예제 #9
0
def setUp_openstack():
    # Initialize core DB
    global os_base_instance_url
    os_admin_id = create_os_provider()
    os_provider = os_admin_id.provider
    os_accounts = OSAccounts(os_provider)
    os_id = os_accounts.create_account(
        settings.TEST_RUNNER_USER, os_accounts.hashpass(settings.TEST_RUNNER_USER), max_quota=True
    )
    reverse_link = reverse("instance-list", args=[os_id.provider.id, os_id.id])
    os_base_instance_url = urljoin(settings.SERVER_URL, reverse_link)
예제 #10
0
def setUp_openstack():
    #Initialize core DB
    global os_base_instance_url
    os_admin_id = create_os_provider()
    os_provider = os_admin_id.provider
    os_accounts = OSAccounts(os_provider)
    os_id = os_accounts.create_account(settings.TEST_RUNNER_USER,
                                       os_accounts.hashpass(
                                           settings.TEST_RUNNER_USER),
                                       max_quota=True)
    reverse_link = reverse('api:public_apis:instance-list',
                           args=[os_id.provider.id, os_id.id])
    os_base_instance_url = urljoin(settings.SERVER_URL, reverse_link)
예제 #11
0
def main():
    """
    Add a user to openstack.
    """
    parser = argparse.ArgumentParser()
    parser.add_argument('users', type=str, nargs='+')
    args = parser.parse_args()
    openstack_prov = Provider.objects.get(location='iPlant Cloud - Tucson')
    driver = AccountDriver(openstack_prov)
    success = 0
    for username in args.users:
        print "Adding username... %s" % username
        try:
            if not is_atmo_user(username):
                print "User is not in the atmo-user group.\n"\
                    + "User does not exist in Atmosphere."
                raise Exception("User does not exist in Atmosphere.")
            user = driver.get_user(username)
            if not user:
                identity = driver.create_account(username)
                credentials = identity.credential_set.all()
                print 'New OStack User - Credentials: %s ' % (credentials)
                send_new_provider_email(username, "Openstack")
            else:
                password = driver.hashpass(username)
                identity = driver.create_identity(user.name,
                                               password,
                                               project_name=username)
                credentials = identity.credential_set.all()
                print 'Found OStack User - Credentials: %s' % (credentials)
            #ASSERT: User exists on openstack, create an identity for them.
            success += 1
            print 'New OStack Identity - %s:%s' % (identity.id, identity)
        except Exception as e:
            print "Problem adding username: %s" % username
            print e
            raise

    print "Total users created:%s/%s" % (success, len(args.users))
예제 #12
0
def main():
    """
    Add a user to openstack.
    """
    parser = argparse.ArgumentParser()
    parser.add_argument('users', type=str, nargs='+')
    args = parser.parse_args()
    openstack_prov = Provider.objects.get(location='OPENSTACK')
    driver = AccountDriver(openstack_prov)
    success = 0
    for username in args.users:
        print "Adding username... %s" % username
        try:
            if not is_atmo_user(username):
                print "User is not in the atmo-user group.\n"\
                    + "User does not exist in Atmosphere."
                raise Exception("User does not exist in Atmosphere.")
            user = driver.get_user(username)
            if not user:
                identity = driver.create_account(username)
                credentials = identity.credential_set.all()
                print 'New OStack User - Credentials: %s ' % (credentials)
                send_new_provider_email(username, "Openstack")
            else:
                password = driver.hashpass(username)
                identity = driver.create_identity(user.name,
                                                  password,
                                                  project_name=username)
                credentials = identity.credential_set.all()
                print 'Found OStack User - Credentials: %s' % (credentials)
            #ASSERT: User exists on openstack, create an identity for them.
            success += 1
            print 'New OStack Identity - %s:%s' % (identity.id, identity)
        except Exception as e:
            print "Problem adding username: %s" % username
            print e
            raise

    print "Total users created:%s/%s" % (success, len(args.users))