1 {% extends
"base.html" %}
3 <h2>Datastore Admin of {{hosting_app_id}}
</h2>
5 <div class=
"ae-errorbox">
9 <div class=
"ae-table-caption">
10 <div class=
"ae-paginate">
11 <div class=
"g-section g-tpl-50-50 g-split">
12 <div class=
"g-unit g-first">
13 <strong>Entities
</strong>
16 <span id=
"ae-dash-quota-refresh-info">
17 {% if last_stats_update %}
18 Entity statistics last updated
19 {{ last_stats_update|date:
"M j, Y g:i a T" }}
21 Entity statistics unavailable.
24 href=
"http://developers.google.com/appengine/kb/adminconsole.html#datastore_stats">
25 <img class=
"ae-help-icon" src=
"{{ base_path }}/static/img/help.gif"
26 height=
"14" width=
"14" alt=
"help">
34 <form action=
"{{ base_path }}/" method=
"post">
35 {% if has_namespace %}
36 <input type=
"hidden" name=
"namespace" value=
"{{ namespace|escape}}">
38 <input type=
"hidden" name=
"app_id" value=
"{{ app_id }}">
39 <input type=
"hidden" name=
"cancel_url" value=
"{{ cancel_url }}">
40 <table id=
"kinds" class=
"ae-table ae-table-striped">
43 <th scope=
"col" class=
"cbc tct-selectall"></th>
44 <th scope=
"col" class=
"id">Entity Kind
</th>
45 <th scope=
"col" class=
"id"># Entities
</th>
46 <th scope=
"col" class=
"id">Avg. Size/Entity
</th>
47 <th scope=
"col" class=
"id">Entities Size
</th>
48 <th scope=
"col" class=
"id">Total Size
</th>
52 {% for kind in kind_stats %}
55 <input type=
"checkbox" name=
"kind" value=
"{{ kind.kind_name }}"
56 id=
"{{ kind.kind_name }}">
59 <label for=
"{{ kind.kind_name }}">{{ kind.kind_name }}
</label>
62 <td class=
"id">{{ kind.count }}
</td>
63 <td class=
"id">{{ kind.average_bytes_str }}
</td>
64 <td class=
"id">{{ kind.entity_bytes_str }}
</td>
65 <td class=
"id">{{ kind.total_bytes_str }}
</td>
67 <td class=
"id" style=
"color: #666667;">Stats not available
</td>
68 <td class=
"id" style=
"color: #666667;">Stats not available
</td>
69 <td class=
"id" style=
"color: #666667;">Stats not available
</td>
77 {% for action in action_list %}
78 <input type=
"submit" name=
"action"
79 class=
"goog-button" value=
"{{ action }}">
87 <table class=
"ae-table">
91 <div class=
"ae-disabled"
92 style=
"padding-top: 0.75em; padding-bottom: 0.75em;
101 {% if pending_backups %}
103 <div class=
"ae-table-caption">
104 <div class=
"ae-paginate">
105 <div class=
"g-section g-tpl-50-50 g-split">
106 <div class=
"g-unit g-first">
107 <strong>Pending Backups
</strong>
112 <form action=
"{{ base_path }}/" method=
"post">
113 <input type=
"hidden" name=
"app_id" value=
"{{ app_id }}">
114 <input type=
"hidden" name=
"cancel_url" value=
"{{ cancel_url }}">
115 <table id=
"pending_backups" class=
"ae-table ae-table-striped">
118 <th scope=
"col" class=
"cbc tct-selectall"></th>
119 <th scope=
"col" class=
"id">Name
</th>
120 <th scope=
"col" class=
"id">Start-Time
</th>
124 {% for pending_backup in pending_backups %}
127 <input type=
"checkbox" name=
"backup_id" value=
"{{ pending_backup.key }}" id=
"{{ pending_backup.key }}">
130 <span title=
"Kinds: {{ pending_backup.kinds|join:', '|truncatewords:20|escape}}">{{ pending_backup.name }}{% if pending_backup.original_app %} (Imported from {{pending_backup.original_app|escape}}){% endif %}
</span>
133 {{ pending_backup.start_time }}
140 <td colspan=
"4" nowrap=
"nowrap">
141 {% for pending_backup_action in pending_backup_action_list %}
142 <input type=
"submit" name=
"action" style=
"" class=
"goog-button" value=
"{{ pending_backup_action }}">
151 <div class=
"ae-table-caption">
152 <div class=
"ae-paginate">
153 <div class=
"g-section g-tpl-50-50 g-split">
154 <div class=
"g-unit g-first">
155 <strong>Backups
</strong>
161 <form action=
"{{ base_path }}/" method=
"post">
162 <input type=
"hidden" name=
"app_id" value=
"{{ app_id }}">
163 <input type=
"hidden" name=
"cancel_url" value=
"{{ cancel_url }}">
164 <table id=
"backups" class=
"ae-table ae-table-striped">
167 <th scope=
"col" class=
"cbc tct-selectall"></th>
168 <th scope=
"col" class=
"id">Name
</th>
169 <th scope=
"col" class=
"id">Start-Time
</th>
170 <th scope=
"col" class=
"id">End-Time
</th>
174 {% for backup in backups %}
177 <input type=
"checkbox" name=
"backup_id" value=
"{{ backup.key }}" id=
"{{ backup.key }}">
180 <span title=
"Kinds: {{ backup.kinds|join:', '|truncatewords:20|escape }}">{{ backup.name }}{% if backup.original_app %} (Imported from {{backup.original_app|escape}}){% endif %}
</span>
183 {{ backup.start_time }}
186 {{ backup.complete_time }}
193 <td colspan=
"4" nowrap=
"nowrap">
194 {% for backup_action in backup_action_list %}
195 <input type=
"submit" name=
"action" style=
"" class=
"goog-button" value=
"{{ backup_action }}">
203 <div class=
"ae-table-caption">
204 <form action=
"{{ base_path }}/" method=
"post" >
205 <input type=
"hidden" name=
"cancel_url" value=
"{{ cancel_url }}">
206 <input type=
"submit" name=
"action" value=
"Import Backup Information" title=
"Import Backup Information or restore from Google Cloud Storage"/>
207 <input type=
"text" name=
"gs_handle" value=
"" size=
"50" title=
"Google Cloud Storage path of a backup info file or a bucket name"/>
210 {% if active_operations %}
212 <div class=
"ae-table-caption">
213 <div class=
"ae-paginate">
214 <div class=
"g-section g-tpl-50-50 g-split">
215 <div class=
"g-unit g-first">
216 <strong>Active Operations
</strong>
221 <table id=
"operations" class=
"ae-table ae-table-striped">
224 <th scope=
"col" class=
"id">Description
</th>
225 <th scope=
"col" class=
"id">Jobs
</th>
229 {% for operation in active_operations %}
232 {{ operation.description }}
235 ({{operation.completed_jobs}} steps completed,
236 {{operation.active_jobs}} active)
237 {% for job_id in operation.active_job_ids %}
238 <br/><a href=
"{{ map_reduce_path }}?mapreduce_id={{job_id}}">Job {{job_id}}
</a>
246 {% if completed_operations %}
248 <div class=
"ae-table-caption">
249 <div class=
"ae-paginate">
250 <div class=
"g-section g-tpl-50-50 g-split">
251 <div class=
"g-unit g-first">
252 <strong>Completed Operations
</strong>
257 <table id=
"operations" class=
"ae-table ae-table-striped">
260 <th scope=
"col" class=
"id">Description
</th>
261 <th scope=
"col" class=
"id">Completed steps
</th>
262 <th scope=
"col" class=
"id">Status
</th>
263 <th scope=
"col" class=
"id">Status info
</th>
267 {% for operation in completed_operations %}
270 {{ operation.description }}
273 {{operation.completed_jobs}} steps
279 {{operation.status_info}}