It's all about the answers!

Ask a question

Cannot duplicate streams between 2 different RTC repositories


Blazej Rutkowski (2112) | asked Aug 04 '14, 9:00 a.m.
edited Aug 04 '14, 9:33 a.m. by Krzysztof Kaźmierczyk (7.5k480103)
Hi,

I need to duplicate streams between 2 RTC repositories because I want to keep the history in my new RTC repository.

I am getting following error:

User 'Name_of_the_user' does not have permission to read component 'name_of_the_component'

I have tried different options to make this duplication work. No success.

My User is defined in both repositories. It should have all required permissions. I can use this user to browse the sources in the original RTC. I can also create new stream in target RTC (and create components inside it manually). I just cannot do it through the "Duplicate" option.

1) The original RTC info: 4.0.5 (Build Id: RJF-I20131025-1325)
     Client Access Licenses - Rational Team Concert (Developer-Floating)

2 The target RTC info: 4.0.5 (Build Id: RJF-I20131025-1325)
     Client Access Licenses - Rational Team Concert (Developer-Floating), Rational Quality Manager (Quality Professional-Floating)




Comments
Murali Pattathe commented Jan 05 '16, 1:52 p.m. | edited Jan 05 '16, 9:40 p.m.

I am facing similar issue.
I also was  trying to move streams over to new RTC server, and I was able to move some of the streams successfully. But I am getting the following error when I tried to move the streams contains a specific component. I able to load and work with that stream though.  It fails only when I tried to push the component over to new server.

I get this message "Permission denied during "Source Control Operation".
User 'user name' does not have permission to read component 'component name'  "     .

Looking for your help on this.


Ralph Schoon commented Jan 06 '16, 2:11 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

You don't have read permissions, as the message very clearly points out.

If the user does not have permissions to read a component, then he can't copy it to a different server.


Geoffrey Clemm commented Jan 06 '16, 7:35 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Or in this case, if the user does not have permission to read a component, then he can't deliver changes into it.


sam detweiler commented Jan 06 '16, 7:38 a.m.

yeh, but there is a twist..   He doesn't have permission to read a component that he doesn't know exists (already, but not visible to him)


Geoffrey Clemm commented Jan 06 '16, 7:55 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

I agree with Sam that this would be confusing, since if you cannot see an object, you cannot inspect it to see why you cannot see it (:-).   He needs to ask someone with JazzAdmins repository permission to change the visibility/ownership of that component (or find out who else has done a cross-repository delivery, and ask them to make that change).


Murali Pattathe commented Jan 06 '16, 12:07 p.m. | edited Jan 06 '16, 9:45 p.m.

I am an administrator for Project and team area and this component ownership pointing to the team area.  I was able to copy other components owned by same team area from the same stream to new RTC server.


Geoffrey Clemm commented Jan 06 '16, 9:48 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

Note that being an administrator for the project and team area does not give you read access to a component whose visibility is Private.   I assume by "copy other components", you meant "deliver changes to other components in the new RTC server".   If so, that means you have read access to those other components.

showing 5 of 7 show 2 more comments

3 answers



permanent link
Geoffrey Clemm (30.1k33035) | answered Jan 05 '16, 10:55 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
The error message pretty much tells you what to do ... you cannot write to a given component unless you have read access to that component.   Read access to a given component is defined by the Owner and Visibility fields of that component.  My understanding is that by default, the Owner of a component created by a distributed delivery is set to be the user that executes the Deliver operation that creates that component, and the Visibility of that component is set to Private.  So nobody else can see that component until you either modify the Owner field to be the appropriate team or project area, or set the Visibility to be Public or to some project area (or in 6.0.1, set the Visibility to the the appropriate Access Group).

Note that as Kevin correctly points out, there is only one instance of a given component in a given repository (it wouldn't make sense to do anything other than that ... you cannot have every cross repository deliver create new instances of every component being delivered).   So the first time a change set of a given component is delivered to a given repository, that component is created in that repository, and the Owner and Visibility fields of that component are initialized.  

permanent link
Ralph Schoon (63.3k33646) | answered Aug 04 '14, 9:18 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
edited Jan 06 '16, 2:22 a.m.
I am not sure what you mean with duplicate. Whatever you do, you don't even seem to have read access to the data.

The way I am aware of to do this is distributed SCM. See https://jazz.net/library/article/535 and https://jazz.net/library/article/1399 for details.

In order to do this, the user needs to be able to load a repository workspace in both repositories. To write in the project area on the server the data is copied to and also the special permission to "replicate change sets". In addition, both servers need to be enabled for distributed SCM.

 

Comments
Blazej Rutkowski commented Aug 04 '14, 10:38 a.m. | edited Aug 04 '14, 10:39 a.m.

Hi,

1) By duplicate I mean RTC feature "Duplicate". It can be invoked after right-click on the stream which I want to duplicate.

2)I tried also the point "5. Checklist - How to replicate a stream with a large change set history" from the first article. I got the same result "User 'Name_of_the_user' does not have permission to read component 'name_of_the_component'

3) I have the code loaded to workspace on the original RTC (I can see code, check-in code there etc.)

I am not able to load the code in the new repository (I created empty workspace and I set the Flow Target for the stream in original RTC) - I could not load the content (I got the issue which I described above)


4) I have permission "replicate change sets" in both team areas (both RTC)

5) Both RTC servers have "enable distributed SCM" set to 'true'

It seems that I need permission to read from component when I am on different RTC server. Do you know which permission is missing ? Maybe, there is an issue, that my user is not recognized as the same user in different RTC.
Thanks for help.



Ralph Schoon commented Aug 04 '14, 11:02 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

You deal with two servers. That means two users, one on each server. The ID's and names might be the same on both, however the contributor is a different object in both repositories. Lets say

  • User_a on RTC server A, Project A owning Stream A.
  • User_B on RTC Server B, Project B owning Stream B

If working in the Eclipse Client, User_a needs to be logged into Server A with read and replication access to project A that owns the stream A. 

User_b needs to be logged into Server B and have read/write access to project B where Stream B is supposed to be copied to.

Read Access is controlled in the project area's Access Control section of the project area editor and also by membership to the project area.

To test, you can also load the workspace from one stream, then create a stream on the other server and point the flow target to the other stream. Then deliver there.


permanent link
Kevin Ramer (4.5k9186201) | answered Jan 05 '16, 2:29 p.m.
In addition to the basic permissions described above, we ran into this situation where a component was delivered from one repository to another, but then users in the 2nd repository couldn't also deliver the same component to a different project.   Turns out a remotely delivered component will exist only once in the second repository and users in any project that need access must have the access in the project to which the initial delivery was made.

Comments
sam detweiler commented Jan 05 '16, 2:54 p.m.

ugh,, that is tricky.. is it visibility set to project only? but components are server wide.. ouch

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.