Project

Profile

Help

31+ Ideas (post MVP) » History » Sprint/Milestone 23

bmbouter, 12/14/2017 08:29 PM
Adding consumer applicability. Removing Task Scheduling since we don't plan to ever add it.

1 12 bmbouter
# Core 3.1+ Ideas (post MVP)
2 1 bmbouter
3 11 bmbouter
## Authentication
4 1 bmbouter
5
  - External
6
  - Expiring passwords
7
  - REMOTE_USER support?
8
9 11 bmbouter
## Authorization
10 1 bmbouter
11
\<put ideas here\>
12
13 11 bmbouter
## Versioned Repository
14 1 bmbouter
15 22 bmbouter
As an authenticated user, I can get a list of a repo's versions.
16 6 bmbouter
17 22 bmbouter
As an authenticated user, I can specify how many versions to keep at a time.
18 6 bmbouter
19 22 bmbouter
As an authenticated user, I can get a reference to a new repo version from any task that adds or removes content.
20 6 bmbouter
21 22 bmbouter
As an authenticated user, I can publish a repo and have it default to the latest version.
22 6 bmbouter
23 22 bmbouter
As an authenticated user, I can run a publisher with a repository version.
24 1 bmbouter
25 11 bmbouter
## Content Manipulation
26 2 bmbouter
27
  - Sync can have "sync" options.
28
  - Sync options are different than "importer" attributes.
29
30 14 bmbouter
As an authenticated user, I can remove one or more units from one or more repositories
31
32
  - filtering support on the unit(s)
33
  - filtering support on the repositories
34
35 22 bmbouter
As an authenticated user I can specify a filter to identify content to be added to a repo
36 16 bmbouter
37 21 bmbouter
## Content Deletion
38
39
As an authenticated user, artifacts are deleted if they were exclusively used by the content unit
40
41
As an authenticated user, I can delete multiple content units with filtering
42
43
  - If a content unit is still in at least one repository the delete fails with a listing of all repositories the unit is part of.
44
  - Artifacts and associated files from deleted units are cleaned up
45
46 19 bmbouter
## Content Filtering
47
48
As a user, I can search all content for a specific content unit regardless of type
49
50
As a user, I can find out all the repos in which a piece of content appears
51
52
  - example: bad content the user wants to remove from all repos in Pulp
53
54 20 bmbouter
## Publications
55
56
As an authenticated user, I have filters on the Publication list:
57
58
  - id: (id_in_list) \# id equality is not necessary, objects are referenced by id
59
  - filter by created range
60
  - filter by not associated w/ distribution.
61
62 11 bmbouter
## Upload
63 5 bmbouter
64
  - Allow for a large single file to have its chunks uploaded in parallel.
65
66 18 amacdona@redhat.com
Repositories 3.1+  
67
filter by content type(ex. repository_contains_type: rpm)  
68
last_content_added(content_added_since)  
69
last_content_removed(content_removed_since)  
70
"partial" repo name search (name: substring)  
71
"tagged" repo names (name: substring)
72
73
Importer 3.1+
74
75 11 bmbouter
## Importers
76 1 bmbouter
77
  - Sync from multiple importers
78
  - We need to support multiple importers to properly support distributions and ostree (with distributions).
79
  - add auto-publish feature
80
  - As an authenticated user I have a notes field I can use to store arbitrary \<key, value\> tuples with both key and value being strings.
81 11 bmbouter
  - Add the force-full option.
82 18 amacdona@redhat.com
  - add filter for last_synced, either last_synced_lt or last_syced_in_range
83
  - add filter by repository if we no longer nest
84
  - add filter for feed_url: (equality, substring)
85 1 bmbouter
86 11 bmbouter
## Publishers
87 2 bmbouter
88 11 bmbouter
  - Add an auto_publish feature. Possibly a field called auto_publish \[default to true\] that indicates that the publisher will publish automatically when the associated repository's content has changed.
89 1 bmbouter
  - Add the force-full option.
90 12 bmbouter
  - Add a no-op publishing feature
91 11 bmbouter
92
## Task Management
93
94 3 bmbouter
Allow filtering of tasks on 'completed' or 'started'. These 'meta' states are not states directly, but they represent a group of states. For instance 'completed' would be represent 'skipped', 'completed', 'failed', and 'canceled'.
95
96
Additional filtering support:
97 1 bmbouter
98 3 bmbouter
  - worker
99
  - started_at, filtered by less than, greater than
100 1 bmbouter
  - finished_at, filtered by less than, greater than
101 3 bmbouter
  - resource field on an associated ReservedResource
102
103
As an authenticated user I can DELETE a task
104
105 11 bmbouter
## Data Exports
106 4 bmbouter
107
As an authenticated user, I can export a group of published repositories to a single media
108
109
As an authenticated user, I can export an incremental publish of a group of repositories to a single media
110
111
For both use cases \^, the layout needs some more discussion.
112
113
  - maybe it is specified by the user?
114 1 bmbouter
  - maybe it is maintains the published filesystem tree structure?
115
116 4 bmbouter
Also there are two main options in this area.
117
118
1\. One is a publish bundler that bundles up all the units published to disk. Then this media (e.g. an iso) is mounted and brought into another Pulp installation using a sync. This will only work for content types that don't require 'live APIs'
119
120
2\. Another option is to export database model data and disk content units from one Pulp to media and then import by directly adding those units to another Pulp. This could be done through the API possibly. This would allow things like Docker to be exported and imported, but it may not work for OSTree??
121
122 1 bmbouter
Also there was discussion about OSTree possibly never supporting and incremental export/import due to how OSTree stores content.
123
124
## Server Plugins (which content types are available and importers and publishers)
125 9 bmbouter
126
## Orphans
127
128 14 bmbouter
As an authenticated user, I can force delete content units even when associated with repositories.  
129
As an authenticated user, I can cleanup orphaned content units for a specific "type" without specifying the units specifically.  
130 15 bmbouter
As an authenticated user, I can filter orphan cleanup to only remove orphaned content units and artifacts created before a specified datetime.  
131
As an authenticated user, I list all orphaned content units and orphaned artifacts that are not in any repositories
132 1 bmbouter
133
## Plugin API
134
135
Incremental publishing support
136 23 bmbouter
137
## Consumer Profile Applicability
138
139
Using Consumer Profiles and repository bindings I can compute applicability with 2.y parity
140
141
  - Performance needs to be awesome
142
143
Glossary term:  
144
Consumer Profile - A set of installed units on a specific machine. In Pulp3 this machine is not a "consumer" in the same sense as Pulp2. Pulp is not "managing" the machine anymore; Pulp3 only collects Profile information.
145 8 dkliban@redhat.com
146 11 bmbouter
## Status API
147 8 dkliban@redhat.com
148
Status API return status of Squid (aka Proxy), web server, streamer
149
150
API to view an overall health attribute that returns a message when something is not operating properly or True.
151
152
I can view information about unapplied migrations
153
154 1 bmbouter
I can view a verbose Status API which returns a Pulp version for each component along with a list of all plugins and their versions.
155
156
## Alternate content source support
157 12 bmbouter
158 17 bmbouter
## Deployment
159
160 22 bmbouter
As a user, I can deploy the Pulp content serving view without all of Pulp's requirements.
161 17 bmbouter
162 12 bmbouter
# Plugin Feature Set 3.1+ Ideas (post MVP)
163
164
## Python
165
166
  - Add a mirror sync policy
167 13 mhrivnak
168
## Event Listener Notifier
169
170
I can receive serialized task info via AMQP on each task save
171
172
*Can this be restated in more pedantic terms? Does this mean that an arbitrary host can attach itself to Pulp's AMQP message bus and get updates on the progress of tasks?*