← Back to team overview

dhis2-devs team mailing list archive

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

 

Hi,

Well, we didn't have an exact plan for when to switch over the
import/export UI, but seeing as we only switched to the new importer in the
maintenance app this week, we will wait for 2.25 to switch over the
import/export UI (to test it more).

We are probably phasing out the legacy importer in 2.25, so it seems like a
good time to then switch over the UI also.



-- 
Morten Olav Hansen
Senior Engineer, DHIS 2
University of Oslo
http://www.dhis2.org

On Fri, Jun 24, 2016 at 11:30 AM, Vanya Seth <vanyas@xxxxxxxxxxxxxxxx>
wrote:

> 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!!
>

References