← Back to team overview

dhis2-devs team mailing list archive

Re: [Bug 1538443] Re: Metadata import of users fails

 

Hi Morten

The plan to move the UI as well to the new importer functionality was
supposed to be out in 2.24. Is it not the right understanding?

Regards
Vanya

On Fri, Jun 24, 2016 at 4:56 AM, Morten Olav Hansen <morten@xxxxxxxxx>
wrote:

> It's only available as a API at this point (probably will be changed in
> 2.25), and yes you can import multiple users at the same time.
>
> If you are using json you can use something like this:
> curl -X POST -d @file.json -H "Content-Type: application/json" -u
> username:password http://server/api/23/metadata
>
> Or xml:
> curl -X POST -d @file.xml -H "Content-Type: application/xml" -u
> username:password http://server/api/23/metadata
>
> You can read more about it here:
> http://dhis2.github.io/dhis2-docs/master/en/developer/html/ch01s14.html
>
> If you are using windows and don't have access to cURL, you can install
> this package:
> https://github.com/bmatzelle/gow
>
> --
> Morten Olav Hansen
> Senior Engineer, DHIS 2
> University of Oslo
> http://www.dhis2.org
>
> On Fri, Jun 24, 2016 at 5:05 AM, <ifeanyiokoye@xxxxxxxxx> wrote:
>
>> ‎Hello Morten,
>>
>> Would the upgrade to 2.23 allow me to do the import from the metadata
>> import app or I would have to do it from the API?
>> If I had to do it from the API, is there step-by-step guidance on how to
>> do this? I have to import 59 users and would I have to do that one after
>> the other or as a batch?
>>
>> Thank you.
>>
>> Regards,
>>
>>
>> Ifeanyi
>>
>>   Original Message
>> From: Morten Olav Hansen
>> Sent: Thursday, 23 June 2016 17:56
>> To: dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Reply To: Bug 1538443
>> Subject: Re: [Dhis2-devs] [Bug 1538443] Re: Metadata import of users fails
>>
>>
>> Hi
>>
>> Are you able to update to 2.23? in 2.23 we have a new importer at the
>> /api/23/metadata endpoint which has much better support for (among other
>> types) users
>>
>> --
>> Morten Olav Hansen
>> Senior Engineer, DHIS 2
>> University of Oslo
>> http://www.dhis2.org
>>
>> On Thu, Jun 23, 2016 at 6:13 PM, Ifeanyi Okoye <
>> 1538443@xxxxxxxxxxxxxxxxxx>
>> wrote:
>>
>> > Hello,
>> > I am trying to move data from one instance of DHIS2 (2.22) to another
>> > using metadata export and import. So far everything else has worked
>> except
>> > for importing users. It just goes on indefinitely.
>> >
>> > Please see the logs below:
>> >
>> > * ERROR 2016-06-23 01:31:31,479 Unexpected error occurred in scheduled
>> > task. (TaskUtils.java [taskScheduler-2])
>> > org.hibernate.TransientObjectException: object references an unsaved
>> > transient instance - save the transient instance before flushing:
>> > org.hisp.dhis.user.User
>> > at
>> >
>> org.hibernate.engine.internal.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:249)
>> > at org.hibernate.type.EntityType.getIdentifier(EntityType.java:536)
>> > at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:311)
>> > at org.hibernate.type.ManyToOneType.isDirty(ManyToOneType.java:321)
>> > at org.hibernate.type.TypeHelper.findDirty(TypeHelper.java:294)
>> > at
>> >
>> org.hibernate.persister.entity.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:4049)
>> > at
>> >
>> org.hibernate.event.internal.DefaultFlushEntityEventListener.dirtyCheck(DefaultFlushEntityEventListener.java:537)
>> > at
>> >
>> org.hibernate.event.internal.DefaultFlushEntityEventListener.isUpdateNecessary(DefaultFlushEntityEventListener.java:235)
>> > at
>> >
>> org.hibernate.event.internal.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:164)
>> > at
>> >
>> org.hibernate.event.internal.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:230)
>> > at
>> >
>> org.hibernate.event.internal.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:100)
>> > at
>> >
>> org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:61)
>> > at
>> >
>> org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1166)
>> > at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1223)
>> > at org.hibernate.internal.QueryImpl.list(QueryImpl.java:101)
>> > at
>> >
>> org.hibernate.internal.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:909)
>> > at
>> >
>> org.hisp.dhis.user.hibernate.HibernateUserCredentialsStore.getUserCredentialsByUsername(HibernateUserCredentialsStore.java:48)
>> > at
>> >
>> org.hisp.dhis.user.DefaultUserService.getUserCredentialsByUsername(DefaultUserService.java:567)
>> > at sun.reflect.GeneratedMethodAccessor204.invoke(Unknown Source)
>> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> > at java.lang.reflect.Method.invoke(Unknown Source)
>> > at
>> >
>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>> > at
>> >
>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>> > at
>> >
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
>> > at com.sun.proxy.$Proxy35.getUserCredentialsByUsername(Unknown
>> > Source)
>> > at
>> >
>> org.hisp.dhis.user.DefaultCurrentUserService.getCurrentUser(DefaultCurrentUserService.java:92)
>> > at sun.reflect.GeneratedMethodAccessor161.invoke(Unknown Source)
>> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> > at java.lang.reflect.Method.invoke(Unknown Source)
>> > at
>> >
>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>> > at
>> >
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
>> > at com.sun.proxy.$Proxy18.getCurrentUser(Unknown Source)
>> > at
>> >
>> org.hisp.dhis.hibernate.HibernateGenericStore.getSharingCriteria(HibernateGenericStore.java:207)
>> > at
>> >
>> org.hisp.dhis.hibernate.HibernateGenericStore.getSharingCriteria(HibernateGenericStore.java:200)
>> > at
>> >
>> org.hisp.dhis.hibernate.HibernateGenericStore.getSharingCriteria(HibernateGenericStore.java:275)
>> > at
>> >
>> org.hisp.dhis.hibernate.HibernateGenericStore.getSharingObject(HibernateGenericStore.java:307)
>> > at
>> >
>> org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getByUid(HibernateIdentifiableObjectStore.java:107)
>> > at
>> >
>> org.hisp.dhis.common.hibernate.HibernateIdentifiableObjectStore.getByUid(HibernateIdentifiableObjectStore.java:57)
>> > at
>> >
>> org.hisp.dhis.common.DefaultIdentifiableObjectManager.get(DefaultIdentifiableObjectManager.java:189)
>> > at sun.reflect.GeneratedMethodAccessor567.invoke(Unknown Source)
>> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> > at java.lang.reflect.Method.invoke(Unknown Source)
>> > at
>> >
>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>> > at
>> >
>> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>> > at
>> >
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
>> > at com.sun.proxy.$Proxy76.get(Unknown Source)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.DefaultObjectBridge.getUidMatch(DefaultObjectBridge.java:722)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.DefaultObjectBridge.findMatches(DefaultObjectBridge.java:526)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.DefaultObjectBridge.getObjects(DefaultObjectBridge.java:421)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter.validateForNewStrategy(DefaultIdentifiableObjectImporter.java:700)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter.validateIdentifiableObject(DefaultIdentifiableObjectImporter.java:651)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter.importObjectLocal(DefaultIdentifiableObjectImporter.java:536)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.importers.DefaultIdentifiableObjectImporter.importObjects(DefaultIdentifiableObjectImporter.java:192)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.DefaultImportService.doImport(DefaultImportService.java:260)
>> > at
>> >
>> org.hisp.dhis.dxf2.metadata.DefaultImportService.importMetaData(DefaultImportService.java:176)
>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> > at java.lang.reflect.Method.invoke(Unknown Source)
>> > at
>> >
>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281)
>> > at
>> >
>> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>> > at
>> >
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
>> > at com.sun.proxy.$Proxy201.importMetaData(Unknown Source)
>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>> > at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>> > at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>> > at java.lang.reflect.Method.invoke(Unknown Source)
>> > at
>> >
>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
>> > at
>> >
>> org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)
>> > at
>> >
>> org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)
>> > at
>> >
>> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
>> > at
>> >
>> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207)
>> > at com.sun.proxy.$Proxy152.importMetaData(Unknown Source)
>> > at
>> >
>> org.hisp.dhis.importexport.action.util.ImportMetaDataTask.call(ImportMetaDataTask.java:99)
>> > at
>> >
>> org.hisp.dhis.security.SecurityContextRunnable.run(SecurityContextRunnable.java:57)
>> > at
>> >
>> org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
>> > at java.util.concurrent.Executors$RunnableAdapter.call(Unknown
>> > Source)
>> > at java.util.concurrent.FutureTask.run(Unknown Source)
>> > at
>> >
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(Unknown
>> > Source)
>> > at
>> >
>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown
>> > Source)
>> > at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown
>> > Source)
>> > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
>> > Source)
>> > at java.lang.Thread.run(Unknown Source)
>> >
>> >
>> > Is there a solution to this issue?
>> >
>> > --
>> > You received this bug notification because you are a bug assignee.
>> > https://bugs.launchpad.net/bugs/1538443
>> >
>> > Title:
>> > Metadata import of users fails
>> >
>> > Status in DHIS:
>> > Fix Released
>> >
>> > Bug description:
>> > I am using two instances of DHIS. I have exported metadata from one
>> > instance of DHIS and imported that into another instance of DHIS. But
>> the
>> > import process fails at users. When I try importing metadata without
>> > "users", import is successful.
>> > While importing metadata with users, The log says - "object references
>> > an unsaved transient instance". I have also gone through some threads
>> > raising similar issues, and heard that import of users is disabled or
>> not
>> > supported. If so, is there a way we can import users? Could you please
>> > elaborate on that.
>> >
>> > Current user:
>> > admin
>> > Version:
>> > 2.21
>> > Build revision:
>> > 20983
>> > User agent:
>> > Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36
>> > (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
>> >
>> > To manage notifications about this bug go to:
>> > https://bugs.launchpad.net/dhis2/+bug/1538443/+subscriptions
>> >
>>
>> --
>> You received this bug notification because you are a member of DHIS 2
>> developers, which is subscribed to DHIS.
>> https://bugs.launchpad.net/bugs/1538443
>>
>> Title:
>> Metadata import of users fails
>>
>> Status in DHIS:
>> Fix Released
>>
>> Bug description:
>> I am using two instances of DHIS. I have exported metadata from one
>> instance of DHIS and imported that into another instance of DHIS. But the
>> import process fails at users. When I try importing metadata without
>> "users", import is successful.
>> While importing metadata with users, The log says - "object references an
>> unsaved transient instance". I have also gone through some threads raising
>> similar issues, and heard that import of users is disabled or not
>> supported. If so, is there a way we can import users? Could you please
>> elaborate on that.
>>
>> Current user:
>> admin
>> Version:
>> 2.21
>> Build revision:
>> 20983
>> User agent:
>> Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36
>> (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36
>>
>> To manage notifications about this bug go to:
>> https://bugs.launchpad.net/dhis2/+bug/1538443/+subscriptions
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs
>> Post to : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs
>> More help : https://help.launchpad.net/ListHelp
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~dhis2-devs
>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~dhis2-devs
>> More help   : https://help.launchpad.net/ListHelp
>>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dhis2-devs
> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dhis2-devs
> More help   : https://help.launchpad.net/ListHelp
>
>


-- 
With Regards
ThoughtWorks Technologies
Hyderabad

--Stay Hungry Stay Foolish!!

Follow ups

References