From f48c21b12452b0d8f56dd232c0f4461bd60fe6bb Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 21 Apr 2015 14:38:21 +0200 Subject: [PATCH 001/140] Remove unused code. --- package.json | 3 +- src/xapi.coffee | 147 ------------------------------------------------ 2 files changed, 1 insertion(+), 149 deletions(-) delete mode 100644 src/xapi.coffee diff --git a/package.json b/package.json index cef316534..b6581ede5 100644 --- a/package.json +++ b/package.json @@ -77,8 +77,7 @@ "then-redis": "~1.3.0", "ws": "~0.7.1", "xen-api": "^0.3.0", - "xml2js": "~0.4.6", - "xmlrpc": "~1.3.0" + "xml2js": "~0.4.6" }, "devDependencies": { "chai": "~2.1.2", diff --git a/src/xapi.coffee b/src/xapi.coffee deleted file mode 100644 index 35b2f7e4d..000000000 --- a/src/xapi.coffee +++ /dev/null @@ -1,147 +0,0 @@ -# URL parsing. -{parse: $parseUrl} = require 'url' - -#--------------------------------------------------------------------- - -$debug = (require 'debug') 'xo:xapi' -$xmlrpc = require 'xmlrpc' - -#--------------------------------------------------------------------- - -# Helpers for dealing with fibers. -{$coroutine, $wait} = require './fibers-utils' - -#===================================================================== - -$sleep = (delay) -> - (cb) -> setTimeout cb, delay - -#===================================================================== - -# Note: All methods are synchronous (using fibers). -class $XAPI - # Number of tries when the connection fails (TCP or XAPI). - tries: 10 - - constructor: ({@host, @username, @password}) -> - @connect() - - connect: (force = false) -> - {hostname, port} = $parseUrl "http://#{@host}" - - # Returns nothing if already connected to this host and not force. - if !force and (hostname is @xmlrpc?.options.host) - return - - port ?= 443 - - @_readableHost = "#{@username}@#{hostname}:#{port}" - - @xmlrpc = $xmlrpc.createSecureClient { - host: hostname - port - rejectUnauthorized: false - timeout: 10 - } - - # Logs in. - @logIn() - - call: (method, args...) -> - @connect() unless @xmlrpc - - tries = @tries - do helper = => - try - result = $wait (callback) => - actualArgs = if @sessionId - [@sessionId, args...] - else - args - - $debug '%s: %s(...)', @_readableHost, method - @xmlrpc.methodCall method, actualArgs, callback - - # Returns the plain result if it does not have a valid XAPI format. - return result unless result.Status? - - # Returns the result's value if all went well. - return result.Value if result.Status is 'Success' - - # Something went wrong. - error = result.ErrorDescription or value - catch error # Captures the error if it was thrown. - - # If it failed too much times, just stops. - throw error unless --tries - - # Gets the error code for transport errors and XAPI errors. - code = error.code or error[0] - - $debug 'Error from %s: %s', @_readableHost, code - - switch code - - # XAPI sometimes close the connection when the server is no - # longer pool master (`event.next`), so we have to retry at - # least once to know who is the new pool master. - when 'ECONNRESET', \ - 'ECONNREFUSED', \ - 'EHOSTUNREACH', \ - 'ETIMEDOUT', \ - 'HOST_STILL_BOOTING', \ - 'HOST_HAS_NO_MANAGEMENT_IP' - # Node.js seems to reuse the broken socket, so we add a small - # delay. - # - # FIXME Magic number!!! - # - # I would like to be able to use a shorter delay but for - # some reason, when we connect to XAPI at a given moment, - # the connection hangs. - $wait $sleep 5e3 - helper() - - # XAPI is sometimes reinitialized and sessions are lost. - # We try log in again if necessary. - when 'SESSION_INVALID' - @logIn() - helper() - - # Except during the login process, catch this error and try to - # log in again. - when 'SESSION_AUTHENTICATION_FAILED' - throw error unless @sessionId - - @logIn() - helper() - - # If the current host is a slave, changes the current host, - # reconnect and retry. - when 'HOST_IS_SLAVE' - @host = error[1] - @connect() - helper() - - # This error has not been handled, just forwards it. - else - throw error - - logIn: -> - # FIXME: Ugly hack. - return if @_logging - @_logging = true - - # Makes sure there is not session id left. - delete @sessionId - - @sessionId = @call 'session.login_with_password', @username, @password - - $debug 'Logged in %s (session = %s)', @_readableHost, @sessionId - - # FIXME: Ugly hack. - delete @_logging - -#===================================================================== - -module.exports = $XAPI From 7af0883f0823099a1f20a288653d4544c2e8e533 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 21 Apr 2015 14:39:20 +0200 Subject: [PATCH 002/140] gulp-sourcemaps is a dev dep. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b6581ede5..ebfea6c0e 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,6 @@ "fibers": "~1.0.5", "fs-promise": "^0.3.1", "graceful-fs": "^3.0.6", - "gulp-sourcemaps": "^1.5.1", "hashy": "~0.4.2", "http-server-plus": "^0.5.1", "human-format": "^0.3.0", @@ -86,6 +85,7 @@ "gulp-babel": "^5", "gulp-coffee": "^2.3.1", "gulp-plumber": "^1.0.0", + "gulp-sourcemaps": "^1.5.1", "gulp-watch": "^4.2.2", "in-publish": "^1.1.1", "mocha": "^2.2.1", From fe3ce45b8e0d888a11951d55187ded790671c7fd Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 21 Apr 2015 14:40:12 +0200 Subject: [PATCH 003/140] Remove unused dep. --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index ebfea6c0e..dbae6ca1d 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,6 @@ "babel-runtime": "^5", "base64url": "1.0.4", "bluebird": "^2.9.14", - "compiled-accessors": "^0.2.0", "connect": "^3.3.5", "debug": "^2.1.3", "event-to-promise": "^0.3.2", From 1a894652012695ddb4b9348eba4043292bac21b4 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 22 Apr 2015 14:10:04 +0200 Subject: [PATCH 004/140] Replace AMAP `var` by `const`. --- src/api.js | 4 ++-- src/collection.js | 4 ++-- src/index.js | 15 ++++++++------- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/api.js b/src/api.js index 2b916a462..8e8b95826 100644 --- a/src/api.js +++ b/src/api.js @@ -49,7 +49,7 @@ function checkPermission (method) { // ------------------------------------------------------------------- function checkParams (method, params) { - var schema = method.params + const schema = method.params if (!schema) { return } @@ -140,7 +140,7 @@ checkAuthorization = Bluebird.method(function (userId, object) { }) function resolveParams (method, params) { - var resolve = method.resolve + const resolve = method.resolve if (!resolve) { return params } diff --git a/src/collection.js b/src/collection.js index 6c2bafa71..c303a6ef5 100644 --- a/src/collection.js +++ b/src/collection.js @@ -99,7 +99,7 @@ export default class Collection extends EventEmitter { } update (models) { - var array = isArray(models) + const array = isArray(models) if (!isArray(models)) { models = [models] } @@ -120,7 +120,7 @@ export default class Collection extends EventEmitter { throw new Error('a model without an id cannot be updated') } - var error = model.validate() + const error = model.validate() if (error !== undefined) { // TODO: Better system inspired by Backbone.js. throw error diff --git a/src/index.js b/src/index.js index ea4a4f352..148cc556b 100644 --- a/src/index.js +++ b/src/index.js @@ -83,14 +83,15 @@ const loadConfiguration = coroutine(function * () { const loadPlugin = Bluebird.method(function (pluginConf, pluginName) { debugPlugin('loading %s', pluginName) - var pluginPath - try { - pluginPath = require.resolve('xo-server-' + pluginName) - } catch (e) { - pluginPath = require.resolve(pluginName) - } + const pluginPath = (function (name) { + try { + return require.resolve('xo-server-' + name) + } catch (e) { + return require.resolve(name) + } + })(pluginName) - var plugin = require(pluginPath) + let plugin = require(pluginPath) if (isFunction(plugin)) { plugin = plugin(pluginConf) From 7737dc6b6c750a487e923a22fb1fb7c16d899f5f Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 22 Apr 2015 14:28:30 +0200 Subject: [PATCH 005/140] Convert last ES5 files to ES6. --- src/connection.js | 60 ++++++++++++---------------- src/fibers-utils.spec.js | 85 +++++++++++++++++++--------------------- 2 files changed, 64 insertions(+), 81 deletions(-) diff --git a/src/connection.js b/src/connection.js index d271c7750..a604f16ca 100644 --- a/src/connection.js +++ b/src/connection.js @@ -1,34 +1,26 @@ -'use strict' +import {EventEmitter} from 'events' // =================================================================== -var EventEmitter = require('events').EventEmitter -var inherits = require('util').inherits +const has = (function () { + return (val, prop) => hasOwnProperty.call(val, prop) +})(Object.hasOwnProperty) -var assign = require('lodash.assign') +const noop = () => {} // =================================================================== -var has = Object.prototype.hasOwnProperty -has = has.call.bind(has) +export default class Connection extends EventEmitter { + constructor ({close, notify}) { + super() -function noop () {} + this._close = close + this.data = Object.create(null) + this.notify = notify + } -// =================================================================== - -function Connection (opts) { - EventEmitter.call(this) - - this.data = Object.create(null) - - this._close = opts.close - this.notify = opts.notify -} -inherits(Connection, EventEmitter) - -assign(Connection.prototype, { // Close the connection. - close: function () { + close () { // Prevent errors when the connection is closed more than once. this.close = noop @@ -37,16 +29,16 @@ assign(Connection.prototype, { this.emit('close') // Releases values AMAP to ease the garbage collecting. - for (var key in this) { + for (let key in this) { if (key !== 'close' && has(this, key)) { delete this[key] } } - }, + } // Gets the value for this key. - get: function (key, defaultValue) { - var data = this.data + get (key, defaultValue) { + const {data} = this if (key in data) { return data[key] @@ -57,23 +49,19 @@ assign(Connection.prototype, { } throw new Error('no value for `' + key + '`') - }, + } // Checks whether there is a value for this key. - has: function (key) { + has (key) { return key in this.data - }, + } // Sets the value for this key. - set: function (key, value) { + set (key, value) { this.data[key] = value - }, + } - unset: function (key) { + unset (key) { delete this.data[key] } -}) - -// =================================================================== - -module.exports = Connection +} diff --git a/src/fibers-utils.spec.js b/src/fibers-utils.spec.js index 0a2970705..fda8b91e2 100644 --- a/src/fibers-utils.spec.js +++ b/src/fibers-utils.spec.js @@ -1,33 +1,28 @@ -'use strict' - -// =================================================================== - /* eslint-env mocha */ -var expect = require('chai').expect +import {expect} from 'chai' // ------------------------------------------------------------------- -var Promise = require('bluebird') +import Bluebird from 'bluebird' // ------------------------------------------------------------------- -var utils = require('./fibers-utils') -var $coroutine = utils.$coroutine +import utils, {$coroutine} from './fibers-utils' // =================================================================== describe('$coroutine', function () { - it('creates a on which returns promises', function () { - var fn = $coroutine(function () {}) + it('creates a on which returns Bluebirds', function () { + const fn = $coroutine(function () {}) expect(fn().then).to.be.a('function') }) it('creates a function which runs in a new fiber', function () { - var previous = require('fibers').current + const previous = require('fibers').current - var fn = $coroutine(function () { - var current = require('fibers').current + const fn = $coroutine(function () { + const current = require('fibers').current expect(current).to.exists expect(current).to.not.equal(previous) @@ -37,9 +32,9 @@ describe('$coroutine', function () { }) it('forwards all arguments (even this)', function () { - var self = {} - var arg1 = {} - var arg2 = {} + const self = {} + const arg1 = {} + const arg2 = {} $coroutine(function (arg1_, arg2_) { expect(this).to.equal(self) @@ -52,25 +47,25 @@ describe('$coroutine', function () { // ------------------------------------------------------------------- describe('$wait', function () { - var $wait = utils.$wait + const $wait = utils.$wait - it('waits for a promise', function (done) { + it('waits for a Bluebird', function (done) { $coroutine(function () { - var value = {} - var promise = Promise.cast(value) + const value = {} + const Bluebird = Bluebird.cast(value) - expect($wait(promise)).to.equal(value) + expect($wait(Bluebird)).to.equal(value) done() })() }) - it('handles promise rejection', function (done) { + it('handles Bluebird rejection', function (done) { $coroutine(function () { - var promise = Promise.reject('an exception') + const Bluebird = Bluebird.reject('an exception') expect(function () { - $wait(promise) + $wait(Bluebird) }).to.throw('an exception') done() @@ -79,8 +74,8 @@ describe('$wait', function () { it('waits for a continuable', function (done) { $coroutine(function () { - var value = {} - var continuable = function (callback) { + const value = {} + const continuable = function (callback) { callback(null, value) } @@ -92,7 +87,7 @@ describe('$wait', function () { it('handles continuable error', function (done) { $coroutine(function () { - var continuable = function (callback) { + const continuable = function (callback) { callback('an exception') } @@ -106,7 +101,7 @@ describe('$wait', function () { it('forwards scalar values', function (done) { $coroutine(function () { - var value = 'a scalar value' + let value = 'a scalar value' expect($wait(value)).to.equal(value) value = [ @@ -133,17 +128,17 @@ describe('$wait', function () { })() }) - it('handles arrays of promises/continuables', function (done) { + it('handles arrays of Bluebirds/continuables', function (done) { $coroutine(function () { - var value1 = {} - var value2 = {} + const value1 = {} + const value2 = {} - var promise = Promise.cast(value1) - var continuable = function (callback) { + const Bluebird = Bluebird.cast(value1) + const continuable = function (callback) { callback(null, value2) } - var results = $wait([promise, continuable]) + const results = $wait([Bluebird, continuable]) expect(results[0]).to.equal(value1) expect(results[1]).to.equal(value2) @@ -151,18 +146,18 @@ describe('$wait', function () { })() }) - it('handles maps of promises/continuable', function (done) { + it('handles maps of Bluebirds/continuable', function (done) { $coroutine(function () { - var value1 = {} - var value2 = {} + const value1 = {} + const value2 = {} - var promise = Promise.cast(value1) - var continuable = function (callback) { + const Bluebird = Bluebird.cast(value1) + const continuable = function (callback) { callback(null, value2) } - var results = $wait({ - foo: promise, + const results = $wait({ + foo: Bluebird, bar: continuable }) expect(results.foo).to.equal(value1) @@ -173,20 +168,20 @@ describe('$wait', function () { }) it('handles nested arrays/maps', function (done) { - var promise = Promise.cast('a promise') - var continuable = function (callback) { + const Bluebird = Bluebird.cast('a Bluebird') + const continuable = function (callback) { callback(null, 'a continuable') } $coroutine(function () { expect($wait({ - foo: promise, + foo: Bluebird, bar: [ continuable, 'a scalar' ] })).to.deep.equal({ - foo: 'a promise', + foo: 'a Bluebird', bar: [ 'a continuable', 'a scalar' From bdfdafaec0d5948ecfb48936fcfec74a4cf9d1ad Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 24 Apr 2015 10:58:49 +0200 Subject: [PATCH 006/140] Install json-rpc from the npm repository. --- package.json | 2 +- src/api-errors.js | 4 ++-- src/index.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index dbae6ca1d..e5d96d8d4 100644 --- a/package.json +++ b/package.json @@ -28,6 +28,7 @@ "url": "git://github.com/vatesfr/xo-server.git" }, "dependencies": { + "@julien-f/json-rpc": "^0.3.5", "app-conf": "^0.3.4", "babel-runtime": "^5", "base64url": "1.0.4", @@ -43,7 +44,6 @@ "http-server-plus": "^0.5.1", "human-format": "^0.3.0", "js-yaml": "^3.2.7", - "json-rpc": "git://github.com/julien-f/js-json-rpc", "lodash.assign": "^3.0.0", "lodash.bind": "^3.0.0", "lodash.clone": "^3.0.1", diff --git a/src/api-errors.js b/src/api-errors.js index e4f7cfbbf..8b6c345c7 100644 --- a/src/api-errors.js +++ b/src/api-errors.js @@ -1,10 +1,10 @@ import assign from 'lodash.assign' -import {JsonRpcError} from 'json-rpc/errors' +import {JsonRpcError} from '@julien-f/json-rpc/errors' // =================================================================== // Export standard JSON-RPC errors. -export * from 'json-rpc/errors' +export * from '@julien-f/json-rpc/errors' // ------------------------------------------------------------------- diff --git a/src/index.js b/src/index.js index 148cc556b..e53d9afba 100644 --- a/src/index.js +++ b/src/index.js @@ -26,7 +26,7 @@ import { NotImplemented } from './api-errors' import {coroutine} from 'bluebird' -import {createServer as createJsonRpcServer} from 'json-rpc' +import {createServer as createJsonRpcServer} from '@julien-f/json-rpc' import {readFile} from 'fs-promise' import Api from './api' From cc60aa7b84c063ed92021d46a09f7add10ed0893 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 24 Apr 2015 11:23:04 +0200 Subject: [PATCH 007/140] Remove Coffeelint as it is not really used. --- coffeelint.json | 111 ------------------------------------------------ package.json | 1 - 2 files changed, 112 deletions(-) delete mode 100644 coffeelint.json diff --git a/coffeelint.json b/coffeelint.json deleted file mode 100644 index 49a784c24..000000000 --- a/coffeelint.json +++ /dev/null @@ -1,111 +0,0 @@ -{ - "arrow_spacing": { - "level": "warn" - }, - "camel_case_classes": { - "level": "error" - }, - "coffeescript_error": { - "level": "error" - }, - "colon_assignment_spacing": { - "level": "warn", - "spacing": { - "left": 0, - "right": 1 - } - }, - "cyclomatic_complexity": { - "value": 10, - "level": "warn" - }, - "duplicate_key": { - "level": "error" - }, - "empty_constructor_needs_parens": { - "level": "error" - }, - "indentation": { - "value": 2, - "level": "error" - }, - "line_endings": { - "level": "error", - "value": "unix" - }, - "max_line_length": { - "value": 80, - "level": "warn", - "limitComments": false - }, - "missing_fat_arrows": { - "level": "ignore" - }, - "newlines_after_classes": { - "value": 1, - "level": "warn" - }, - "no_backticks": { - "level": "error" - }, - "no_debugger": { - "level": "warn" - }, - "no_empty_functions": { - "level": "ignore" - }, - "no_empty_param_list": { - "level": "warn" - }, - "no_implicit_braces": { - "level": "ignore", - "strict": true - }, - "no_implicit_parens": { - "strict": true, - "level": "ignore" - }, - "no_implicit_returns": { - "level": "warn", - "module": "coffeelint-no-implicit-returns" - }, - "no_interpolation_in_single_quotes": { - "level": "ignore" - }, - "no_plusplus": { - "level": "ignore" - }, - "no_stand_alone_at": { - "level": "error" - }, - "no_tabs": { - "level": "error" - }, - "no_throwing_strings": { - "level": "error" - }, - "no_trailing_semicolons": { - "level": "error" - }, - "no_trailing_whitespace": { - "level": "error", - "allowed_in_comments": false, - "allowed_in_empty_lines": false - }, - "no_unnecessary_double_quotes": { - "level": "warn" - }, - "no_unnecessary_fat_arrows": { - "level": "warn" - }, - "non_empty_constructor_needs_parens": { - "level": "ignore" - }, - "prefer_english_operator": { - "level": "warn", - "doubleNotLevel": "ignore" - }, - "space_operators": { - "level": "warn" - } -} diff --git a/package.json b/package.json index e5d96d8d4..f09015363 100644 --- a/package.json +++ b/package.json @@ -79,7 +79,6 @@ }, "devDependencies": { "chai": "~2.1.2", - "coffeelint-no-implicit-returns": "0.0.4", "gulp": "git://github.com/gulpjs/gulp#4.0", "gulp-babel": "^5", "gulp-coffee": "^2.3.1", From 3e2606097948a8757d1c4235969236c0ccfae60a Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 24 Apr 2015 14:01:12 +0200 Subject: [PATCH 008/140] fibers-urils: CoffeeScript to ES6 and tests fixed. --- src/fibers-utils.coffee | 104 ---------------------------------- src/fibers-utils.js | 115 ++++++++++++++++++++++++++++++++++++++ src/fibers-utils.spec.js | 117 +++++++++++++-------------------------- 3 files changed, 152 insertions(+), 184 deletions(-) delete mode 100644 src/fibers-utils.coffee create mode 100644 src/fibers-utils.js diff --git a/src/fibers-utils.coffee b/src/fibers-utils.coffee deleted file mode 100644 index 13bad28c5..000000000 --- a/src/fibers-utils.coffee +++ /dev/null @@ -1,104 +0,0 @@ -Bluebird = require 'bluebird' -Fiber = require 'fibers' -forEach = require 'lodash.foreach' -isArray = require 'lodash.isarray' -isFunction = require 'lodash.isfunction' -isObject = require 'lodash.isobject' - -#===================================================================== - -isPromise = (obj) -> obj? and isFunction obj.then - -# The value is guarantee to resolve asynchronously. -runAsync = (value, resolve, reject) -> - if isPromise value - return value.then resolve, reject - - if isFunction value # Continuable - handler = (error, result) -> - if error? - reject error - else - resolve result - return - - sync = true - value (error, result) -> - if sync - process.nextTick -> handler error, result - else - handler error, result - return - sync = false - return - - unless isObject value - return process.nextTick -> resolve value - - left = 0 - results = if isArray value - new Array value.length - else - Object.create null - - forEach value, (value, index) -> - ++left - runAsync( - value - (result) -> - # Returns if already rejected. - return unless results - - results[index] = result - resolve results unless --left - (error) -> - # Returns if already rejected. - return unless results - - # Frees the reference ASAP. - results = null - - reject error - ) - return - - if left is 0 - process.nextTick -> resolve value - -#===================================================================== - -# Makes a function run in its own fiber and returns a promise. -coroutine = (fn) -> - return (args...) -> - return new Bluebird (resolve, reject) => - new Fiber(=> - try - resolve fn.apply this, args - catch error - reject error - ).run() - return -exports.coroutine = coroutine - -# Waits for a promise or a continuable to end. -# -# If value is composed (array or map), every asynchronous value is -# resolved before returning (parallelization). -wait = (value) -> - fiber = Fiber.current - throw new Error 'not running in a fiber' unless fiber? - - runAsync( - value - (value) -> fiber.run value - (error) -> fiber.throwInto error - ) - - return Fiber.yield() -exports.wait = wait - -#===================================================================== - -# Compatibility. -exports.$coroutine = coroutine -exports.$wait = wait diff --git a/src/fibers-utils.js b/src/fibers-utils.js new file mode 100644 index 000000000..96f93406b --- /dev/null +++ b/src/fibers-utils.js @@ -0,0 +1,115 @@ +import Bluebird from 'bluebird' +import Fiber from 'fibers' +import forEach from 'lodash.foreach' +import isArray from 'lodash.isarray' +import isFunction from 'lodash.isfunction' +import isObject from 'lodash.isobject' + +// =================================================================== + +export const isPromise = (obj) => obj && isFunction(obj.then) + +// The value is guarantee to resolve asynchronously. +const runAsync = (value, resolve, reject) => { + if (isPromise(value)) { + return value.then(resolve, reject) + } + + if (isFunction(value)) { // Continuable + throw new Error('continuable are no longer supported') + } + + if (!isObject(value)) { + return process.nextTick(() => { + resolve(value) + }) + } + + let left = 0 + let results = isArray(value) ? + new Array(value.length) : + Object.create(null) + + forEach(value, (value, index) => { + ++left + runAsync( + value, + (result) => { + // Returns if already rejected. + if (!results) { + return + } + + results[index] = result + if (!--left) { + resolve(results) + } + }, + (error) => { + // Returns if already rejected. + if (!results) { + return + } + + // Frees the reference ASAP. + results = null + + reject(error) + } + ) + }) + + if (!left) { + process.nextTick(() => { + resolve(value) + }) + } +} + +// =================================================================== + +// Makes a function run in its own fiber and returns a promise. +export function coroutine (fn) { + return function (...args) { + return new Bluebird((resolve, reject) => { + new Fiber(() => { + try { + resolve(fn.apply(this, args)) + } catch (error) { + reject(error) + } + }).run() + }) + } +} + +// Waits for a promise or a continuable to end. +// +// If value is composed (array or map), every asynchronous value is +// resolved before returning (parallelization). +export const wait = (value) => { + const fiber = Fiber.current + if (!fiber) { + throw new Error('not running in a fiber') + } + + runAsync( + value, + (value) => { + fiber.run(value) + }, + (error) => { + fiber.throwInto(error) + } + ) + + return Fiber.yield() +} + +// =================================================================== + +// Compatibility. +export { + coroutine as $coroutine, + wait as $wait +} diff --git a/src/fibers-utils.spec.js b/src/fibers-utils.spec.js index fda8b91e2..d814a66ef 100644 --- a/src/fibers-utils.spec.js +++ b/src/fibers-utils.spec.js @@ -8,12 +8,16 @@ import Bluebird from 'bluebird' // ------------------------------------------------------------------- -import utils, {$coroutine} from './fibers-utils' +import {$coroutine, $wait} from './fibers-utils' + +// Enable source maps support for traces. +import sourceMapSupport from 'source-map-support' +sourceMapSupport.install() // =================================================================== describe('$coroutine', function () { - it('creates a on which returns Bluebirds', function () { + it('creates a function which returns promises', function () { const fn = $coroutine(function () {}) expect(fn().then).to.be.a('function') }) @@ -28,7 +32,7 @@ describe('$coroutine', function () { expect(current).to.not.equal(previous) }) - fn() + return fn() }) it('forwards all arguments (even this)', function () { @@ -36,7 +40,7 @@ describe('$coroutine', function () { const arg1 = {} const arg2 = {} - $coroutine(function (arg1_, arg2_) { + return $coroutine(function (arg1_, arg2_) { expect(this).to.equal(self) expect(arg1_).to.equal(arg1) expect(arg2_).to.equal(arg2) @@ -47,60 +51,27 @@ describe('$coroutine', function () { // ------------------------------------------------------------------- describe('$wait', function () { - const $wait = utils.$wait - - it('waits for a Bluebird', function (done) { - $coroutine(function () { + it('waits for a promise', function () { + return $coroutine(function () { const value = {} - const Bluebird = Bluebird.cast(value) + const promise = Bluebird.resolve(value) - expect($wait(Bluebird)).to.equal(value) - - done() + expect($wait(promise)).to.equal(value) })() }) - it('handles Bluebird rejection', function (done) { - $coroutine(function () { - const Bluebird = Bluebird.reject('an exception') + it('handles promise rejection', function () { + return $coroutine(function () { + const promise = Bluebird.reject('an exception') expect(function () { - $wait(Bluebird) + $wait(promise) }).to.throw('an exception') - - done() })() }) - it('waits for a continuable', function (done) { - $coroutine(function () { - const value = {} - const continuable = function (callback) { - callback(null, value) - } - - expect($wait(continuable)).to.equal(value) - - done() - })() - }) - - it('handles continuable error', function (done) { - $coroutine(function () { - const continuable = function (callback) { - callback('an exception') - } - - expect(function () { - $wait(continuable) - }).to.throw('an exception') - - done() - })() - }) - - it('forwards scalar values', function (done) { - $coroutine(function () { + it('forwards scalar values', function () { + return $coroutine(function () { let value = 'a scalar value' expect($wait(value)).to.equal(value) @@ -123,72 +94,58 @@ describe('$wait', function () { value = {} expect($wait(value)).to.deep.equal(value) - - done() })() }) - it('handles arrays of Bluebirds/continuables', function (done) { - $coroutine(function () { + it('handles arrays of promises', function () { + return $coroutine(function () { const value1 = {} const value2 = {} - const Bluebird = Bluebird.cast(value1) - const continuable = function (callback) { - callback(null, value2) - } + const promise1 = Bluebird.resolve(value1) + const promise2 = Bluebird.resolve(value2) - const results = $wait([Bluebird, continuable]) + const results = $wait([promise1, promise2]) expect(results[0]).to.equal(value1) expect(results[1]).to.equal(value2) - - done() })() }) - it('handles maps of Bluebirds/continuable', function (done) { - $coroutine(function () { + it('handles maps of promises', function () { + return $coroutine(function () { const value1 = {} const value2 = {} - const Bluebird = Bluebird.cast(value1) - const continuable = function (callback) { - callback(null, value2) - } + const promise1 = Bluebird.resolve(value1) + const promise2 = Bluebird.resolve(value2) const results = $wait({ - foo: Bluebird, - bar: continuable + foo: promise1, + bar: promise2 }) expect(results.foo).to.equal(value1) expect(results.bar).to.equal(value2) - - done() })() }) - it('handles nested arrays/maps', function (done) { - const Bluebird = Bluebird.cast('a Bluebird') - const continuable = function (callback) { - callback(null, 'a continuable') - } + it('handles nested arrays/maps', function () { + const promise1 = Bluebird.resolve('promise 1') + const promise2 = Bluebird.resolve('promise 2') - $coroutine(function () { + return $coroutine(function () { expect($wait({ - foo: Bluebird, + foo: promise1, bar: [ - continuable, + promise2, 'a scalar' ] })).to.deep.equal({ - foo: 'a Bluebird', + foo: 'promise 1', bar: [ - 'a continuable', + 'promise 2', 'a scalar' ] }) - - done() })() }) }) From 9eb939e38f3fc0368305d3219f68495cf26fa9bb Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 24 Apr 2015 17:16:43 +0200 Subject: [PATCH 009/140] helpers: CoffeeScript to ES6. --- src/helpers.coffee | 338 ----------------------------------------- src/helpers.js | 367 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 367 insertions(+), 338 deletions(-) delete mode 100644 src/helpers.coffee create mode 100644 src/helpers.js diff --git a/src/helpers.coffee b/src/helpers.coffee deleted file mode 100644 index cd5136587..000000000 --- a/src/helpers.coffee +++ /dev/null @@ -1,338 +0,0 @@ -# FIXME: This file name should reflect what's inside! - -#===================================================================== - -$clone = require 'lodash.clone' -$forEach = require 'lodash.foreach' -$isArray = require 'lodash.isarray' -$isEmpty = require 'lodash.isempty' -$isFunction = require 'lodash.isfunction' - -#===================================================================== - -$asArray = (val) -> if $isArray val then val else [val] -$asFunction = (val) -> if $isFunction val then val else -> val - -$first = (collection, def) -> - if (n = collection.length)? - return collection[0] unless n is 0 - else - return value for own _, value of collection - - # Nothing was found, returns the `def` value. - def - -$removeValue = (array, value) -> - index = array.indexOf value - return false if index is -1 - array.splice index, 1 - true - -#--------------------------------------------------------------------- - -# TODO: currently the watch can be updated multiple times per -# “$MappedCollection.set()” which is inefficient: it should be -# possible to address that. - -$watch = (collection, { - # Key(s) of the “remote” objects watched. - # - # If it is a function, it is evaluated in the scope of the “current” - # object. (TODO) - # - # Default: undefined - keys - - # Alias for `keys`. - key - - # Rule(s) of the “remote” objects watched. - # - # If it is a function, it is evaluated in the scope of the “current” - # object. (TODO) - # - # Note: `key`/`keys` and `rule`/`rules` cannot be used both. - # - # Default: undefined - rules - - # Alias for `rules`. - rule - - # Value to add to the set. - # - # If it is a function, it is evaluated in the scope of the “remote” - # object. - # - # Default: -> @val - val - - # Predicates the “remote” object must fulfill to be used. - # - # Default: -> true - if: cond - - # Function evaluated in the scope of the “remote” object which - # returns the key of the object to update (usually the current one). - # - # TODO: Does it make sense to return an array? - # - # Default: undefined - bind - - # Initial value. - init - - # Function called when a loop is detected. - # - # Usually it is used to either throw an exception or do nothing to - # stop the loop. - # - # Note: The function may also returns `true` to force the processing - # to continue. - # - # Default: (number_of_loops) -> throw new Error 'loop detected' - loopDetected -}, fn) -> - val = if val is undefined - # The default value is simply the value of the item. - -> @val - else - $asFunction val - - loopDetected ?= -> throw new Error 'loop detected' - - # Method allowing the cleanup when the helper is no longer used. - #cleanUp = -> # TODO: noop for now. - - # Keys of items using the current helper. - consumers = Object.create null - - # Current values. - values = Object.create null - values.common = init - - # The number of nested processing for this watcher is counted to - # avoid an infinite loop. - loops = 0 - - updating = false - - process = (event, items) -> - return if updating - - # Values are grouped by namespace. - valuesByNamespace = Object.create null - - $forEach items, (item, key) -> # `key` is a local variable. - return unless not cond? or cond.call item - - if bind? - key = bind.call item - - # If bind did not return a key, ignores this value. - return unless key? - - namespace = "$#{key}" - else - namespace = 'common' - - # Computes the current value. - value = val.call item - - (valuesByNamespace[namespace] ?= []).push value - - return - - # Stops here if no values were computed. - return if $isEmpty valuesByNamespace - - if loops - return unless (loopDetected loops) is true - previousLoops = loops++ - - # For each namespace. - for namespace, values_ of valuesByNamespace - - # Updates the value. - value = values[namespace] - ctx = { - # TODO: test the $clone - value: if value is undefined then $clone init else value - } - changed = if event is 'enter' - fn.call ctx, values_, {} - else - fn.call ctx, {}, values_ - - # Notifies watchers unless it is known the value has not - # changed. - unless changed is false - values[namespace] = ctx.value - updating = true - if namespace is 'common' - collection.touch consumers - else - collection.touch (namespace.substr 1) - updating = false - - loops = previousLoops - - processOne = (event, item) -> - process event, [item] - - # Sets up the watch based on the provided criteria. - # - # TODO: provides a way to clean this when no longer used. - keys = $asArray (keys ? key ? []) - rules = $asArray (rules ? rule ? []) - if not $isEmpty keys - # Matching is done on the keys. - - throw new Error 'cannot use keys and rules' unless $isEmpty rules - - $forEach keys, (key) -> collection.on "key=#{key}", processOne - - # Handles existing items. - process 'enter', (collection.getRaw keys, true) - else if not $isEmpty rules - # Matching is done the rules. - - $forEach rules, (rule) -> collection.on "rule=#{rule}", process - - # TODO: Inefficient, is there another way? - rules = do -> # Minor optimization. - tmp = Object.create null - tmp[rule] = true for rule in rules - tmp - $forEach collection.getRaw(), (item) -> - processOne 'enter', item if item.rule of rules - else - # No matching done. - - collection.on 'any', process - - # Handles existing items. - process 'enter', collection.getRaw() - - # Creates the generator: the function which items will used to - # register to this watcher and to get the current value. - generator = do (key) -> # Declare a local variable. - -> - {key} = this - - # Register this item has a consumer. - consumers[key] = true - - # Returns the value for this item if any or the common value. - namespace = "$#{key}" - if namespace of values - values[namespace] - else - values.common - - # Creates a helper to unregister an item from this watcher. - generator.unregister = do (key) -> # Declare a local variable. - -> - {key} = this - delete consumers[key] - delete values["$#{key}"] - - # Creates a helper to get the value without using an item. - generator.raw = (key) -> - values[if key? then "$#{key}" else 'common'] - - # Returns the generator. - generator - -#===================================================================== - -$map = (options) -> - options.init = Object.create null - - $watch this, options, (entered, exited) -> - changed = false - - $forEach entered, ([key, value]) => - unless @value[key] is value - @value[key] = value - changed = true - return - $forEach exited, ([key, value]) => - if key of @value - delete @value[key] - changed = true - return - - changed - -#--------------------------------------------------------------------- - -# Creates a set of value from various items. -$set = (options) -> - # Contrary to other helpers, the default value is the key. - options.val ?= -> @key - - options.init = [] - - $watch this, options, (entered, exited) -> - changed = false - - $forEach entered, (value) => - if (@value.indexOf value) is -1 - @value.push value - changed = true - return - - $forEach exited, (value) => - changed = true if $removeValue @value, value - return - - changed - -#--------------------------------------------------------------------- - -$sum = (options) -> - options.init ?= 0 - - $watch this, options, (entered, exited) -> - prev = @value - - $forEach entered, (value) => @value += value - $forEach exited, (value) => @value -= value - - @value isnt prev - -#--------------------------------------------------------------------- - -# Uses a value from another item. -# -# Important note: Behavior is not specified when binding to multiple -# items. -$val = (options) -> - # The default value. - def = options.default - delete options.default - - options.init ?= def - - # Should the last value be kept instead of returning to the default - # value when no items are available! - keepLast = !!options.keepLast - delete options.keepLast - - $watch this, options, (entered, exited) -> - prev = @value - - @value = $first entered, (if keepLast then @value else def) - - @value isnt prev - -#===================================================================== - -module.exports = { - $map - $set - $sum - $val -} diff --git a/src/helpers.js b/src/helpers.js new file mode 100644 index 000000000..b46e8e152 --- /dev/null +++ b/src/helpers.js @@ -0,0 +1,367 @@ +// FIXME: This file name should reflect what's inside! + +// =================================================================== + +import $clone from 'lodash.clone' +import $forEach from 'lodash.foreach' +import $isArray from 'lodash.isarray' +import $isEmpty from 'lodash.isempty' +import $isFunction from 'lodash.isfunction' + +// =================================================================== + +const $asArray = (val) => $isArray(val) ? val : [val] +const $asFunction = (val) => $isFunction(val) ? val : () => val + +const $first = (collection, defaultValue) => { + const {length} = collection + if (length == null) { + for (let key in collection) { + return collection[key] + } + } else if (length) { + return collection[0] + } + + // Nothing was found, returns the `def` value. + return defaultValue +} + +const $removeValue = (array, value) => { + const index = array.indexOf(value) + if (index === -1) { + return false + } + + array.splice(index, 1) + return true +} + +// ------------------------------------------------------------------- + +// TODO: currently the watch can be updated multiple times per +// “$MappedCollection.set()” which is inefficient: it should be +// possible to address that. + +const $watch = (collection, { + // Key(s) of the “remote” objects watched. + // + // If it is a function, it is evaluated in the scope of the “current” + // object. (TODO) + // + // Default: undefined + keys, + + // Alias for `keys`. + key, + + // Rule(s) of the “remote” objects watched. + // + // If it is a function, it is evaluated in the scope of the “current” + // object. (TODO) + // + // Note: `key`/`keys` and `rule`/`rules` cannot be used both. + // + // Default: undefined + rules, + + // Alias for `rules`. + rule, + + // Value to add to the set. + // + // If it is a function, it is evaluated in the scope of the “remote” + // object. + // + // Default: -> @val + val, + + // Predicates the “remote” object must fulfill to be used. + // + // Default: -> true + if: cond, + + // Function evaluated in the scope of the “remote” object which + // returns the key of the object to update (usually the current one). + // + // TODO: Does it make sense to return an array? + // + // Default: undefined + bind, + + // Initial value. + init, + + // Function called when a loop is detected. + // + // Usually it is used to either throw an exception or do nothing to + // stop the loop. + // + // Note: The function may also returns `true` to force the processing + // to continue. + loopDetected = () => { throw new Error('loop detected') } +}, fn) => { + val = val == null ? + // The default value is simply the value of the item. + function () { return this.val } : + $asFunction(val) + + // Method allowing the cleanup when the helper is no longer used. + // cleanUp = -> // TODO: noop for now. + + // Keys of items using the current helper. + const consumers = Object.create(null) + + // Current values. + const values = Object.create(null) + values.common = init + + // The number of nested processing for this watcher is counted to + // avoid an infinite loop. + let loops = 0 + + let updating = false + + const process = (event, items) => { + if (updating) return + + // Values are grouped by namespace. + const valuesByNamespace = Object.create(null) + + $forEach(items, (item) => { + if (cond && !cond.call(item)) return + + const namespace = (function () { + if (bind) { + const key = bind.call(item) + + return key && `$${key}` + } else { + return 'common' + } + })() + + // If not namespace, ignore this item. + if (!namespace) return + + ( + valuesByNamespace[namespace] || + (valuesByNamespace[namespace] = []) + ).push(val.call(item)) + }) + + // Stops here if no values were computed. + if ($isEmpty(valuesByNamespace)) return + + if (loops && loopDetected(loops) !== true) return + const previousLoops = loops++ + + // For each namespace. + $forEach(valuesByNamespace, (values_, namespace) => { + // Updates the value. + const value = values[namespace] + + const ctx = { + // TODO: test the $clone + value: value == null ? $clone(init) : value + } + const changed = event === 'enter' ? + fn.call(ctx, values_, {}) : + fn.call(ctx, {}, values_) + + // Notifies watchers unless it is known the value has not + // changed. + if (changed !== false) { + values[namespace] = ctx.value + updating = true + if (namespace === 'common') { + collection.touch(consumers) + } else { + collection.touch(namespace.substr(1)) + } + updating = false + } + }) + + loops = previousLoops + } + + const processOne = (event, item) => process(event, [item]) + + // Sets up the watch based on the provided criteria. + // + // TODO: provides a way to clean this when no longer used. + keys = $asArray(keys || key || []) + rules = $asArray(rules || rule || []) + if (!$isEmpty(keys)) { + // Matching is done on the keys. + + if (!$isEmpty(rules)) { + throw new Error('cannot use both keys and rules') + } + + $forEach(keys, key => { + collection.on(`key=${key}`, processOne) + }) + + // Handles existing items. + process('enter', collection.getRaw(keys, true)) + } else if (!$isEmpty(rules)) { + // Matching is done the rules. + + $forEach(rules, rule => { + collection.on(`rule=${rule}`, process) + }) + + // TODO: Inefficient, is there another way? + rules = (function (rules) { // Minor optimization. + const tmp = Object.create(null) + for (let rule of rules) { + tmp[rule] = true + } + return tmp + })(rules) + $forEach(collection.getRaw(), item => { + if (rules[item.rule]) { + processOne('enter', item) + } + }) + } else { + // No matching done. + + collection.on('any', process) + + // Handles existing items. + process('enter', collection.getRaw()) + } + + // Creates the generator: the function which items will used to + // register to this watcher and to get the current value. + const generator = function () { + const {key} = this + + // Register this item has a consumer. + consumers[key] = true + + // Returns the value for this item if any or the common value. + const namespace = `$${key}` + return (namespace in values) ? + values[namespace] : + values.common + } + + // Creates a helper to unregister an item from this watcher. + generator.unregister = function () { + const {key} = this + delete consumers[key] + delete values[`$${key}`] + } + + // Creates a helper to get the value without using an item. + generator.raw = (key) => values[key != null ? `$${key}` : 'common'] + + // Returns the generator. + return generator +} + +// =================================================================== + +export const $map = function (options) { + options.init = Object.create(null) + + return $watch(this, options, function (entered, exited) { + let changed = false + + $forEach(entered, ([key, value]) => { + if (this.value[key] !== value) { + this.value[key] = value + changed = true + } + }) + $forEach(exited, ([key, value]) => { + if (key in this.value) { + delete this.value[key] + changed = true + } + }) + + return changed + }) +} + +// ------------------------------------------------------------------- + +// Creates a set of value from various items. +export const $set = function (options) { + // Contrary to other helpers, the default value is the key. + if (!options.val) { + options.val = function () { return this.key } + } + + options.init = [] + + return $watch(this, options, function (entered, exited) { + let changed = false + + $forEach(entered, (value) => { + if (this.value.indexOf(value) === -1) { + this.value.push(value) + changed = true + } + }) + + $forEach(exited, (value) => { + if ($removeValue(this.value, value)) { + changed = true + } + }) + + return changed + }) +} + +// ------------------------------------------------------------------- + +export const $sum = function (options) { + if (!options.init) { + options.init = 0 + } + + return $watch(this, options, function (entered, exited) { + const prev = this.value + + $forEach(entered, (value) => { this.value += value }) + $forEach(exited, (value) => { this.value -= value }) + + return this.value !== prev + }) +} + +// ------------------------------------------------------------------- + +// Uses a value from another item. +// +// Important note: Behavior is not specified when binding to multiple +// items. +export const $val = function (options) { + // The default value. + const def = options.default + delete options.default + + if (!options.init) { + options.init = def + } + + // Should the last value be kept instead of returning to the default + // value when no items are available! + const keepLast = !!options.keepLast + delete options.keepLast + + return $watch(this, options, function (entered, exited) { + const prev = this.value + + this.value = $first(entered, keepLast ? this.value : def) + + return this.value !== prev + }) +} From 6cb30adf5d24ae3ecca234e74a3c00c4b20077c3 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 24 Apr 2015 17:52:05 +0200 Subject: [PATCH 010/140] helpers.spec: CoffeeScript to ES6. --- src/helpers.spec.coffee | 244 ------------------------------------ src/helpers.spec.js | 270 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 270 insertions(+), 244 deletions(-) delete mode 100644 src/helpers.spec.coffee create mode 100644 src/helpers.spec.js diff --git a/src/helpers.spec.coffee b/src/helpers.spec.coffee deleted file mode 100644 index 967625af5..000000000 --- a/src/helpers.spec.coffee +++ /dev/null @@ -1,244 +0,0 @@ -{expect: $expect} = require 'chai' - -$sinon = require 'sinon' - -#--------------------------------------------------------------------- - -{$MappedCollection} = require './MappedCollection' - -$nonBindedHelpers = require './helpers' - -#===================================================================== - -describe 'Helper', -> - - # Shared variables. - collection = $set = $sum = $val = null - beforeEach -> - # Creates the collection. - collection = new $MappedCollection() - - # Dispatcher used for tests. - collection.dispatch = -> (@genkey.split '.')[0] - - # Missing rules should be automatically created. - collection.missingRule = collection.rule - - # # Monkey patch the collection to see all emitted events. - # emit = collection.emit - # collection.emit = (args...) -> - # console.log args... - # emit.call collection, args... - - # Binds helpers to this collection. - {$set, $sum, $val} = do -> - helpers = {} - helpers[name] = fn.bind collection for name, fn of $nonBindedHelpers - helpers - - #------------------------------------------------------------------- - - # All helpers share the same logical code, we need only to test one - # extensively and test the others basically. - # - # $sum was chosen because it is the simplest helper to test. - describe '$sum', -> - - it 'with single key', -> - collection.set foo: 1 - - collection.item sum: -> - @val = $sum { - key: 'foo' - } - - $expect(collection.get 'sum').to.equal 1 - - collection.set foo:2 - - $expect(collection.get 'sum').to.equal 2 - - collection.remove 'foo' - - $expect(collection.get 'sum').to.equal 0 - - it 'with multiple keys', -> - collection.set { - foo: 1 - bar: 2 - } - - collection.item sum: -> - @val = $sum { - keys: ['foo', 'bar'] - } - - $expect(collection.get 'sum').to.equal 3 - - collection.set bar:3 - - $expect(collection.get 'sum').to.equal 4 - - collection.remove 'foo' - - $expect(collection.get 'sum').to.equal 3 - - # FIXME: This test fails but this feature is not used. - it.skip 'with dynamic keys', -> - collection.set { - foo: 1 - bar: 2 - } - - collection.rule sum: -> - @val = $sum { - key: -> (@key.split '.')[1] - } - collection.set { - 'sum.foo': null - 'sum.bar': null - } - - $expect(collection.get 'sum.foo').to.equal 1 - $expect(collection.get 'sum.bar').to.equal 2 - - collection.remove 'bar' - - $expect(collection.get 'sum.foo').to.equal 1 - $expect(collection.get 'sum.bar').to.equal 0 - - it 'with single rule', -> - collection.set { - 'foo.1': 1 - 'foo.2': 2 - } - - collection.item sum: -> - @val = $sum { - rule: 'foo' - } - - $expect(collection.get 'sum').to.equal 3 - - collection.set 'foo.2':3 - - $expect(collection.get 'sum').to.equal 4 - - collection.remove 'foo.1' - - $expect(collection.get 'sum').to.equal 3 - - it 'with multiple rules', -> - collection.set { - 'foo': 1 - 'bar.1': 2 - 'bar.2': 3 - } - - collection.item sum: -> - @val = $sum { - rules: ['foo', 'bar'] - } - - $expect(collection.get 'sum').to.equal 6 - - collection.set 'bar.1':3 - - $expect(collection.get 'sum').to.equal 7 - - collection.remove 'bar.2' - - $expect(collection.get 'sum').to.equal 4 - - it 'with bind', -> - collection.set { - 'foo': { - sum: 2 # This item will participate to `sum.2`. - val: 1 - } - 'bar': { - sum: 1 # This item will participate to `sum.1`. - val: 2 - } - } - - collection.rule sum: -> - @val = $sum { - bind: -> - id = @val.sum - return unless id? - "sum.#{id}" - val: -> @val.val - } - collection.set { - 'sum.1': null - 'sum.2': null - } - - $expect(collection.get 'sum.1').equal 2 - $expect(collection.get 'sum.2').equal 1 - - collection.set { - 'foo': { - sum: 1 - val: 3 - } - } - - $expect(collection.get 'sum.1').equal 5 - $expect(collection.get 'sum.2').equal 0 - - collection.remove 'bar' - - $expect(collection.get 'sum.1').equal 3 - $expect(collection.get 'sum.2').equal 0 - - - it 'with predicate', -> - collection.set { - foo: 1 - bar: 2 - baz: 3 - } - - collection.item sum: -> - @val = $sum { - if: -> /^b/.test @rule - } - - $expect(collection.get 'sum').equal 5 - - collection.set foo:4 - - $expect(collection.get 'sum').equal 5 - - collection.set bar:5 - - $expect(collection.get 'sum').equal 8 - - collection.remove 'baz' - - $expect(collection.get 'sum').equal 5 - - it 'with initial value', -> - collection.set foo: 1 - - collection.item sum: -> - @val = $sum { - key: 'foo' - init: 2 - } - - $expect(collection.get 'sum').to.equal 3 - - collection.set foo:2 - - $expect(collection.get 'sum').to.equal 4 - - collection.remove 'foo' - - $expect(collection.get 'sum').to.equal 2 - -# TODO: -# - dynamic keys -# - dynamic rules diff --git a/src/helpers.spec.js b/src/helpers.spec.js new file mode 100644 index 000000000..1e83950f2 --- /dev/null +++ b/src/helpers.spec.js @@ -0,0 +1,270 @@ +/* eslint-env mocha */ + +import $bind from 'lodash.bind' +import $sinon from 'sinon' +import {expect as $expect} from 'chai' + +import {$MappedCollection} from './MappedCollection' +import * as $nonBindedHelpers from './helpers' + +// Enable source maps support for traces. +import sourceMapSupport from 'source-map-support' +sourceMapSupport.install() + +// =================================================================== + +describe('Helper', () => { + // Shared variables. + // let $set + // let $val + let $sum + let collection + + beforeEach(() => { + // Creates the collection. + collection = new $MappedCollection() + + // Dispatcher used for tests. + collection.dispatch = function () { return this.genkey.split('.')[0] } + + // Missing rules should be automatically created. + collection.missingRule = collection.rule + + // // Monkey patch the collection to see all emitted events. + // { + // const {emit} = collection + // collection.emit = (...args) => { + // console.log(...args) + // emit.call(collection, ...args) + // } + // } + + // Binds helpers to this collection. + // $set = $bind($nonBindedHelpers.$set, collection) + // $val = $bind($nonBindedHelpers.$val, collection) + $sum = $bind($nonBindedHelpers.$sum, collection) + }) + + // ----------------------------------------------------------------- + + // All helpers share the same logical code, we need only to test one + // extensively and test the others basically. + // + // $sum was chosen because it is the simplest helper to test. + describe('$sum', () => { + it('with single key', () => { + collection.set({ foo: 1 }) + + collection.item('sum', function () { + this.val = $sum({ + key: 'foo' + }) + }) + + $expect(collection.get('sum')).to.equal(1) + + collection.set({ foo: 2 }) + + $expect(collection.get('sum')).to.equal(2) + + collection.remove('foo') + + $expect(collection.get('sum')).to.equal(0) + }) + + it('with multiple keys', () => { + collection.set({ + foo: 1, + bar: 2 + }) + + collection.item('sum', function () { + this.val = $sum({ + keys: ['foo', 'bar'] + }) + }) + + $expect(collection.get('sum')).to.equal(3) + + collection.set({ bar: 3 }) + + $expect(collection.get('sum')).to.equal(4) + + collection.remove('foo') + + $expect(collection.get('sum')).to.equal(3) + }) + + // FIXME: This test fails but this feature is not used. + it.skip('with dynamic keys', () => { + collection.set({ + foo: 1, + bar: 2 + }) + + collection.rule('sum', function () { + this.val = $sum({ + key: function () { return this.genkey.split('.')[1] } + }) + }) + collection.set({ + 'sum.foo': null, + 'sum.bar': null + }) + + $expect(collection.get('sum.foo')).to.equal(1) + $expect(collection.get('sum.bar')).to.equal(2) + + collection.remove('bar') + + $expect(collection.get('sum.foo')).to.equal(1) + $expect(collection.get('sum.bar')).to.equal(0) + }) + + it('with single rule', () => { + collection.set({ + 'foo.1': 1, + 'foo.2': 2 + }) + + collection.item('sum', function () { + this.val = $sum({ + rule: 'foo' + }) + }) + + $expect(collection.get('sum')).to.equal(3) + + collection.set({ 'foo.2': 3 }) + + $expect(collection.get('sum')).to.equal(4) + + collection.remove('foo.1') + + $expect(collection.get('sum')).to.equal(3) + }) + + it('with multiple rules', () => { + collection.set({ + 'foo': 1, + 'bar.1': 2, + 'bar.2': 3 + }) + + collection.item('sum', function () { + this.val = $sum({ + rules: ['foo', 'bar'] + }) + }) + + $expect(collection.get('sum')).to.equal(6) + + collection.set({ 'bar.1': 3 }) + + $expect(collection.get('sum')).to.equal(7) + + collection.remove('bar.2') + + $expect(collection.get('sum')).to.equal(4) + }) + + it('with bind', () => { + collection.set({ + 'foo': { + sum: 2, // This item will participate to `sum.2`. + val: 1 + }, + 'bar': { + sum: 1, // This item will participate to `sum.1`. + val: 2 + } + }) + + collection.rule('sum', function () { + this.val = $sum({ + bind: function () { + const id = this.val.sum + + return id && `sum.${id}` + }, + val: function () { return this.val.val } + }) + }) + collection.set({ + 'sum.1': null, + 'sum.2': null + }) + + $expect(collection.get('sum.1')).to.equal(2) + $expect(collection.get('sum.2')).to.equal(1) + + collection.set({ + 'foo': { + sum: 1, + val: 3 + } + }) + + $expect(collection.get('sum.1')).to.equal(5) + $expect(collection.get('sum.2')).to.equal(0) + + collection.remove('bar') + + $expect(collection.get('sum.1')).to.equal(3) + $expect(collection.get('sum.2')).to.equal(0) + }) + + it('with predicate', () => { + collection.set({ + foo: 1, + bar: 2, + baz: 3 + }) + + collection.item('sum', function () { + this.val = $sum({ + if: function () { return /^b/.test(this.rule) } + }) + }) + + $expect(collection.get('sum')).to.equal(5) + + collection.set({ foo: 4 }) + + $expect(collection.get('sum')).to.equal(5) + + collection.set({ bar: 5 }) + + $expect(collection.get('sum')).to.equal(8) + + collection.remove('baz') + + $expect(collection.get('sum')).to.equal(5) + }) + + it('with initial value', () => { + collection.set({ foo: 1 }) + + collection.item('sum', function () { + this.val = $sum({ + key: 'foo', + init: 2 + }) + }) + + $expect(collection.get('sum')).to.equal(3) + + collection.set({ foo: 2 }) + + $expect(collection.get('sum')).to.equal(4) + + collection.remove('foo') + + $expect(collection.get('sum')).to.equal(2) + }) + }) + +// TODO: +// - dynamic keys +// - dynamic rules +}) From 8694ecd417eac48a79ab4f10d8bec8c36e874c87 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 28 Apr 2015 13:06:26 +0200 Subject: [PATCH 011/140] xo: CoffeeScript to ES6 and split in multiple files. --- gulpfile.js | 1 + src/models/acl.js | 33 +++ src/models/server.js | 14 ++ src/models/token.js | 26 +++ src/models/user.js | 68 ++++++ src/xo.coffee | 515 ------------------------------------------- src/xo.js | 478 +++++++++++++++++++++++++++++++++++++++ 7 files changed, 620 insertions(+), 515 deletions(-) create mode 100644 src/models/acl.js create mode 100644 src/models/server.js create mode 100644 src/models/token.js create mode 100644 src/models/user.js delete mode 100644 src/xo.coffee create mode 100644 src/xo.js diff --git a/gulpfile.js b/gulpfile.js index 699dbdd9c..4bdb12d64 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -53,6 +53,7 @@ gulp.task(function buildEs6 () { compact: PRODUCTION, comments: false, optional: [ + 'es7.asyncFunctions', 'runtime' ] })) diff --git a/src/models/acl.js b/src/models/acl.js new file mode 100644 index 000000000..573df781e --- /dev/null +++ b/src/models/acl.js @@ -0,0 +1,33 @@ +import Collection from '../collection/redis' +import Model from '../model' +import {multiKeyHash} from '../utils' + +// =================================================================== + +export default class Acl extends Model {} + +Acl.create = (subject, object) => { + return Acl.hash(subject, object).then(hash => new Acl({ + id: hash, + subject, + object + })) +} + +Acl.hash = (subject, object) => multiKeyHash(subject, object) + +// ------------------------------------------------------------------- + +export class Acls extends Collection { + get Model () { + return Acl + } + + create (subject, object) { + return Acl.create(subject, object).then(acl => this.add(acl)) + } + + delete (subject, object) { + return Acl.hash(subject, object).then(hash => this.remove(hash)) + } +} diff --git a/src/models/server.js b/src/models/server.js new file mode 100644 index 000000000..f5c7df635 --- /dev/null +++ b/src/models/server.js @@ -0,0 +1,14 @@ +import Collection from '../collection/redis' +import Model from '../model' + +// =================================================================== + +export default class Server extends Model {} + +// ------------------------------------------------------------------- + +export class Servers extends Collection { + get Model () { + return Server + } +} diff --git a/src/models/token.js b/src/models/token.js new file mode 100644 index 000000000..f485fef48 --- /dev/null +++ b/src/models/token.js @@ -0,0 +1,26 @@ +import Collection from '../collection/redis' +import Model from '../model' +import {generateToken} from '../utils' + +// =================================================================== + +export default class Token extends Model {} + +Token.generate = (userId) => { + return generateToken().then(token => new Token({ + id: token, + user_id: userId + })) +} + +// ------------------------------------------------------------------- + +export class Tokens extends Collection { + get Model () { + return Token + } + + generate (userId) { + return Token.generate(userId).then(token => this.add(token)) + } +} diff --git a/src/models/user.js b/src/models/user.js new file mode 100644 index 000000000..207ad1c39 --- /dev/null +++ b/src/models/user.js @@ -0,0 +1,68 @@ +import {hash, needsRehash, verify} from 'hashy' + +import Collection from '../collection/redis' +import Model from '../model' + +// =================================================================== + +const PERMISSIONS = { + none: 0, + read: 1, + write: 2, + admin: 3 +} + +// =================================================================== + +export default class User extends Model { + async checkPassword (password) { + const hash = this.get('pw_hash') + + if (!(hash && await verify(password, hash))) { + return false + } + + // There might be no hash if the user authenticate with another + // method (e.g. LDAP). + if (needsRehash(hash)) { + await this.setPassword(password) + } + + return true + } + + hasPermission (permission) { + return PERMISSIONS[this.get('permission')] >= PERMISSIONS[permission] + } + + setPassword (password) { + return hash(password).then(hash => { + return this.set('pw_hash', hash) + }) + } +} + +User.prototype.default = { + permission: 'none' +} + +// ------------------------------------------------------------------- + +export class Users extends Collection { + get Model () { + return User + } + + async create (email, password, permission = 'none') { + const user = new User({ + email, + permission + }) + + if (password != null) { + await user.setPassword(password) + } + + return this.add(user) + } +} diff --git a/src/xo.coffee b/src/xo.coffee deleted file mode 100644 index 9125d4cfd..000000000 --- a/src/xo.coffee +++ /dev/null @@ -1,515 +0,0 @@ -{EventEmitter: $EventEmitter} = require 'events' -{format: $formatUrl, parse: $parseUrl} = require 'url' - -$Bluebird = require 'bluebird' -$debug = (require 'debug') 'xo:xo' -$forEach = require 'lodash.foreach' -$includes = require 'lodash.includes' -$isEmpty = require 'lodash.isempty' -$isString = require 'lodash.isstring' -$pluck = require 'lodash.pluck' -$Promise = require 'bluebird' -$proxyRequest = require 'proxy-http-request' -$httpRequest = require 'request' -{createClient: $createRedisClient} = require 'then-redis' -{createClient: $createXapiClient} = require('xen-api') -{ - hash: $hash - needsRehash: $needsRehash - verify: $verifyHash -} = require 'hashy' - -$Connection = require './connection' -$Model = require './model' -$RedisCollection = require './collection/redis' -$spec = require './spec' -{$coroutine, $wait} = require './fibers-utils' -{ - generateToken: $generateToken - multiKeyHash: $multiKeyHash -} = require './utils' -{$MappedCollection} = require './MappedCollection' - -{Set, $for: {getIterator}} = (require 'babel-runtime/core-js').default - -#===================================================================== -# Models and collections. - -class $Acl extends $Model - @create: (subject, object) -> - return $Acl.hash(subject, object).then((hash) -> - return new $Acl { - id: hash - subject - object - } - ) - @hash: (subject, object) -> $multiKeyHash(subject, object) - -class $Acls extends $RedisCollection - Model: $Acl - create: (subject, object) -> - return $Acl.create(subject, object).then((acl) => @add acl) - delete: (subject, object) -> - return $Acl.hash(subject, object).then((hash) => @remove hash) - -#--------------------------------------------------------------------- - -class $Server extends $Model - validate: -> # TODO - -class $Servers extends $RedisCollection - Model: $Server - -#--------------------------------------------------------------------- - -class $Token extends $Model - @generate: (userId) -> - return $generateToken().then (token) -> - return new $Token { - id: token - user_id: userId - } - - validate: -> # TODO - -class $Tokens extends $RedisCollection - Model: $Token - - generate: (userId) -> - return ($Token.generate userId).then (token) => - return @add token - -#--------------------------------------------------------------------- - -class $User extends $Model - default: { - permission: 'none' - } - - validate: -> # TODO - - # FIXME: Async function should be explicit and return promise. - setPassword: $coroutine (password) -> - @set 'pw_hash', $wait $hash password - return - - # Checks the password and updates the hash if necessary. - # - # FIXME: Async function should be explicit and return promise. - checkPassword: $coroutine (password) -> - hash = @get 'pw_hash' - - # There might be no hash if the user authenticate with another - # method (e.g. LDAP). - unless hash and $wait $verifyHash password, hash - return false - - if $needsRehash hash - $wait @setPassword password - - return true - - hasPermission: (permission) -> - perms = { - none: 0 - read: 1 - write: 2 - admin: 3 - } - - perms[@get 'permission'] >= perms[permission] - -class $Users extends $RedisCollection - Model: $User - - create: $coroutine (email, password, permission) -> - user = new $User { - email: email - permission: permission ? 'none' - } - - $wait(user.setPassword password) if password? - - @add user - -#===================================================================== - -class $XO extends $EventEmitter - - constructor: -> - # These will be initialized in start(). - @servers = @tokens = @users = @_UUIDsToKeys = null - - # Connections to Xen servers/pools. - @_xapis = Object.create null - - # Connections to users. - @connections = Object.create null - @_nextConId = 0 - - # Collections of XAPI objects mapped to XO API. - @_xobjs = new $MappedCollection() - $spec.call @_xobjs - - @_proxyRequests = Object.create null - - @_authenticationProviders = new Set() - - taskWatchers = @_taskWatchers = Object.create null - @_xobjs.on 'rule=task', (event, tasks) -> - return unless event is 'enter' - - $forEach tasks, ({val: task}) -> - {ref} = task - - watcher = taskWatchers[ref] - return unless watcher? - - {status} = task - if status is 'success' - watcher.resolve task.result - else if status is 'failure' - watcher.reject task.error_info - else - return - - delete taskWatchers[ref] - - return - - return - - start: $coroutine (config) -> - # Connects to Redis. - redis = $createRedisClient config.redis?.uri - - # Creates persistent collections. - @acls = new $Acls { - connection: redis - prefix: 'xo:acl' - indexes: ['subject', 'object'] - } - @servers = new $Servers { - connection: redis - prefix: 'xo:server' - indexes: ['host'] - } - @tokens = new $Tokens { - connection: redis - prefix: 'xo:token' - indexes: ['user_id'] - } - @users = new $Users { - connection: redis - prefix: 'xo:user' - indexes: ['email'] - } - - # Proxies tokens/users related events to XO and removes tokens - # when their related user is removed. - @tokens.on 'remove', (ids) => - @emit "token.revoked:#{id}" for id in ids - @users.on 'remove', $coroutine (ids) => - @emit "user.revoked:#{id}" for id in ids - tokens = $wait @tokens.get {user_id: id} - if tokens.length - @tokens.remove (token.id for token in tokens) - - # When objects enter or exists, sends a notification to all - # connected clients. - do => - entered = {} - exited = {} - - dispatcherRegistered = false - dispatcher = => - unless $isEmpty entered - enterParams = - type: 'enter' - items: $pluck entered, 'val' - for id, connection of @connections - if connection.has('user_id') - connection.notify 'all', enterParams - - unless $isEmpty exited - exitParams = - type: 'exit' - items: $pluck exited, 'val' - for id, connection of @connections - # Notify only authenticated clients. - if connection.has('user_id') - connection.notify 'all', exitParams - dispatcherRegistered = false - entered = {} - exited = {} - - @_xobjs.on 'any', (event, items) -> - unless dispatcherRegistered - dispatcherRegistered = true - process.nextTick dispatcher - - if event is 'exit' - $forEach items, (item) -> - {key} = item - delete entered[key] - exited[key] = item - return - else - $forEach items, (item) -> - {key} = item - delete exited[key] - entered[key] = item - return - - # Exports the map from UUIDs to keys. - {$UUIDsToKeys: @_UUIDsToKeys} = (@_xobjs.get 'xo') - - # Prevents errors from stopping the server. - connect = $coroutine (server) => - try - $wait @connectServer server - catch error - console.error( - "[WARN] #{server.host}:" - error[0] ? error.stack ? error.code ? error - ) - - # Connects to existing servers. - connect server for server in $wait @servers.get() - - #------------------------------------------------------------------- - - connectServer: (server) -> - if server.properties - server = server.properties - - xapi = @_xapis[server.id] = $createXapiClient({ - url: server.host, - auth: { - user: server.username, - password: server.password - } - }) - - xapi.objects.on('add', (objects) => - @_xapis[xapi.pool.$id] = xapi - - @_xobjs.set(objects, { - add: true, - update: false, - remove: false - }) - ) - xapi.objects.on('update', (objects) => - @_xapis[xapi.pool.$id] = xapi - - @_xobjs.set(objects, { - add: true, - update: true, - remove: false - }) - ) - xapi.objects.on('remove', (objects) => - @_xobjs.removeWithPredicate (object) => - return object.genval?.$id of objects - ) - - return xapi.connect() - - disconnectServer: (server) -> - id = server and (server.properties?.id ? server.id) ? server - - xapi = @_xapis[id] - return $Bluebird.reject(new Error('no such server')) if not xapi - - delete @_xapis[id] - delete @_xapis[xapi.pool.id] if xapi.pool - - return xapi.disconnect() - - # Returns the XAPI connection associated to an object. - getXAPI: (object, type) -> - if $isString object - object = @getObject object, type - - {$poolId: poolId} = object - unless poolId - throw new Error "object #{object.id} does not belong to a pool" - - xapi = @_xapis[poolId] - unless xapi - throw new Error "no connection found for object #{object.id}" - - return xapi - - #------------------------------------------------------------------- - - # Returns an object from its key or UUID. - getObject: (key, type) -> - # Gracefully handles UUIDs. - if key of @_UUIDsToKeys - key = @_UUIDsToKeys[key] - - obj = @_xobjs.get key - - if type? and ( - ($isString type and type isnt obj.type) or - not $includes type, obj.type # Array - ) - throw new Error "unexpected type: got #{obj.type} instead of #{type}" - - return obj - - # Returns objects. - getObjects: (keys) -> - # Returns all objects if no keys are passed. - return @_xobjs.get() unless keys - - # Resolves all UUIDs. - {_UUIDsToKeys: UUIDsToKeys} = this - for key, index in keys - keys[index] = UUIDsToKeys[key] if key of UUIDsToKeys - - # Fetches all objects ignore those missing. - return @_xobjs.get keys, true - - #------------------------------------------------------------------- - - createUserConnection: (opts) -> - connections = @connections - - connection = new $Connection opts - connection.id = @_nextConId++ - connection.on 'close', -> delete connections[@id] - - connections[connection.id] = connection - - return connection - - registerProxyRequest: $coroutine (opts) -> - url = "/#{$wait $generateToken()}" - - if $isString opts - opts = $parseUrl opts - - opts.method = if opts.method? - opts.method.toUpperCase() - else - 'GET' - - if opts.proxyMethod? - opts.proxyMethod = opts.proxyMethod.toUpperCase() - - opts.createdAt = Date.now() - - @_proxyRequests[url] = opts - - return url - - #------------------------------------------------------------------- - - handleProxyRequest: (req, res, next) -> - unless ( - (request = @_proxyRequests[req.url]) and - req.method is (request.proxyMethod ? request.method) - ) - return next() - - # A proxy request can only be used once. - delete @_proxyRequests[req.url] - - $proxyRequest request, req, res - - res.on 'finish', request.onSuccess if request.onSuccess? - - onFailure = request.onFailure ? ( -> ) - req.on 'close', onFailure - - closeConnection = -> - unless res.headersSent - res.writeHead 500 - res.end() - - onFailure() - - return - - req.on 'error', (error) -> - console.warn 'request error', error.stack ? error - closeConnection() - return - res.on 'error', (error) -> - console.warn 'response error', error.stack ? error - closeConnection() - return - - return - - #------------------------------------------------------------------- - - watchTask: (ref) -> - watcher = @_taskWatchers[ref] - unless watcher? - resolve = reject = null - promise = new $Bluebird (resolve_, reject_) -> - resolve = resolve_ - reject = reject_ - return - - # Register the watcher - watcher = @_taskWatchers[ref] = { - promise - reject - resolve - } - - # Unregister the watcher once the promise is resolved. - promise.finally(() => - delete @_taskWatchers[ref] - return - ) - - return watcher.promise - - #------------------------------------------------------------------- - - registerAuthenticationProvider: (provider) -> - @_authenticationProviders.add(provider) - - unregisterAuthenticationProvider: (provider) -> - @_authenticationProviders.remove(provider) - - authenticateUser: $coroutine (credentials) -> - # TODO: remove when email has been replaced by username - if credentials.email? - credentials.username = credentials.email - else if credentials.username? - credentials.email = credentials.username - - iterator = getIterator(@_authenticationProviders) - - while not (current = iterator.next()).done - try - result = $wait(current.value(credentials)) - return result if result instanceof $User - - # TODO: replace email by username - if result.username? - result.email = result.username - delete result.username - - user = $wait @users.first(result) - return user if user - - return @users.create(result.email) - catch e - # Authentication providers may just throw `null` to indicate - # they could not authenticate the user without any special - # errors. - console.error(e) if e? - return false - -#===================================================================== - -module.exports = $XO diff --git a/src/xo.js b/src/xo.js new file mode 100644 index 000000000..8cfe17732 --- /dev/null +++ b/src/xo.js @@ -0,0 +1,478 @@ +import Bluebird from 'bluebird' +import forEach from 'lodash.foreach' +import includes from 'lodash.includes' +import isEmpty from 'lodash.isempty' +import isString from 'lodash.isstring' +import pluck from 'lodash.pluck' +import proxyRequest from 'proxy-http-request' +import {createClient as createRedisClient} from 'then-redis' +import {createClient as createXapiClient} from 'xen-api' +import {EventEmitter} from 'events' +import {parse as parseUrl} from 'url' + +import Connection from './connection' +import spec from './spec' +import {$MappedCollection as MappedCollection} from './MappedCollection' +import {Acls} from './models/acl' +import {generateToken} from './utils' +import {Servers} from './models/server' +import {Tokens} from './models/token' +import User, {Users} from './models/user' + +// =================================================================== + +export default class Xo extends EventEmitter { + constructor () { + super() + + // These will be initialized in start() + this._UUIDsToKeys = null + this.servers = null + this.tokens = null + this.users = null + + // Connections to Xen servers. + this._xapis = Object.create(null) + + // Connections to users. + this._nextConId = 0 + this.connections = Object.create(null) + + // Collections of XAPI objects mapped to XO Api. + this._xobjs = new MappedCollection() + spec.call(this._xobjs) + + this._proxyRequests = Object.create(null) + + this._authenticationProviders = new Set() + + const taskWatchers = this._taskWatchers = Object.create(null) + this._xobjs.on('rule=task', (event, tasks) => { + if (event !== 'enter') return + + forEach(tasks, ({val: task}) => { + const {ref} = task + + const watcher = taskWatchers[ref] + if (!watcher) return + + const {status} = task + if (status === 'success') { + watcher.resolve(task.result) + } else if (status === 'failure') { + watcher.reject(task.error_info) + } else { + return + } + + delete taskWatchers[ref] + }) + }) + } + + // ----------------------------------------------------------------- + + async start (config) { + // Connects to Redis. + const redis = createRedisClient(config.redis && config.redis.uri) + + // Creates persistent collections. + this.acls = new Acls({ + connection: redis, + prefix: 'xo:acl', + indexes: ['subject', 'object'] + }) + this.servers = new Servers({ + connection: redis, + prefix: 'xo:server', + indexes: ['host'] + }) + this.tokens = new Tokens({ + connection: redis, + prefix: 'xo:token', + indexes: ['user_id'] + }) + this.users = new Users({ + connection: redis, + prefix: 'xo:user', + indexes: ['email'] + }) + + // Proxies tokens/users related events to XO and removes tokens + // when their related user is removed. + this.tokens.on('remove', ids => { + for (let id of ids) { + this.emit(`token.revoked:${id}`) + } + }) + this.users.on('remove', async function (ids) { + for (let id of ids) { + this.emit(`user.revoked:${id}`) + } + + const tokens = await this.tokens.get({ user_id: id }) + for (let token of tokens) { + this.tokens.remove(token.id) + } + }.bind(this)) + + // When objects enter or exists, sends a notification to all + // connected clients. + { + let entered = {} + let exited = {} + + let dispatcherRegistered = false + const dispatcher = () => { + const {connections} = this + + if (!isEmpty(entered)) { + const enterParams = { + type: 'enter', + items: pluck(entered, 'val') + } + + for (let id in connections) { + const connection = connections[id] + + if (connection.has('user_id')) { + connection.notify('all', enterParams) + } + } + + entered = {} + } + + if (!isEmpty(entered)) { + const exitParams = { + type: 'exit', + items: pluck(exited, 'val') + } + + for (let id in connections) { + const connection = connections[id] + + if (connection.has('user_id')) { + connection.notify('all', exitParams) + } + } + + exited = {} + } + } + + this._xobjs.on('any', (event, items) => { + if (!dispatcherRegistered) { + dispatcherRegistered = true + process.nextTick(dispatcher) + } + + if (event === 'exit') { + forEach(items, item => { + const {key} = item + + delete entered[key] + exited[key] = item + }) + } else { + forEach(items, item => { + const {key} = item + + delete exited[key] + entered[key] = item + }) + } + }) + } + + // Exports the map from UUIDs to keys. + this._UUIDsToKeys = this._xobjs.get('xo').$UUIDsToKeys + + // Connects to existing servers. + for (let server of await this.servers.get()) { + this.connectServer(server).catch(error => { + console.error( + `[WARN] ${server.host}:`, + error[0] || error.stack || error.code || error + ) + }) + } + } + + // ----------------------------------------------------------------- + + connectServer (server) { + if (server.properties) { + server = server.properties + } + + const xapi = this._xapis[server.id] = createXapiClient({ + url: server.host, + auth: { + user: server.username, + password: server.password + } + }) + + const {objects} = xapi + objects.on('add', objects => { + this._xapis[xapi.pool.$id] = xapi + + this._xobjs.set(objects, { + add: true, + update: false, + remove: false + }) + }) + objects.on('update', objects => { + this._xapis[xapi.pool.$id] = xapi + + this._xobjs.set(objects, { + add: true, + update: true, + remove: false + }) + }) + objects.on('remove', objects => { + this._xobjs.removeWithPredicate(object => ( + object.genval && + object.genval.$id in objects + )) + }) + + return xapi.connect() + } + + async disconnectServer (server) { + const id = ( + server && ( + server.properties && server.properties.id || + server.id + ) || + server + ) + + const xapi = this._xapis[id] + if (!xapi) { + throw new Error('no such server') + } + + delete this._xapis[id] + if (xapi.pool) { + delete this._xapis[xapi.pool.id] + } + + return xapi.disconnect() + } + + // Returns the XAPI connection associated to an object. + getXAPI (object, type) { + if (isString(object)) { + object = this.getObject(object, type) + } + + const {$poolId: poolId} = object + if (!poolId) { + throw new Error(`object ${object.id} does not belong to a pool`) + } + + const xapi = this._xapis[poolId] + if (!xapi) { + throw new Error(`no connection found for object ${object.id}`) + } + + return xapi + } + + // ----------------------------------------------------------------- + + // Returns an object from its key or UUID. + getObject (key, type) { + // Gracefully handles UUIDs. + if (key in this._UUIDsToKeys) { + key = this._UUIDsToKeys[key] + } + + const obj = this._xobjs.get(key) + + if (type != null && ( + isString(type) && type !== obj.type || + !includes(type, obj.type) // Array + )) { + throw new Error(`unexpected type ${obj.type} instead of ${type}`) + } + + return obj + } + + getObjects (keys) { + // Returns all objects if no keys have been passed. + if (!keys) { + return this._xobjs.get() + } + + // Resolves all UUIDs. + const {_UUIDsToKeys: UUIDsToKeys} = this + for (let i = 0, n = keys.length; i < n; ++i) { + const key = UUIDsToKeys[keys[i]] + if (key != null) { + keys[i] = key + } + } + + // Fetches all objects and ignores those missing. + return this._xobjs.get(keys, true) + } + + // ----------------------------------------------------------------- + + createUserConnection (opts) { + const {connections} = this + + const connection = new Connection(opts) + const id = connection.id = this._nextConId++ + connection.on('close', () => { + connections[id] + }) + + connections[id] = connection + + return connection + } + + // ----------------------------------------------------------------- + + async registerProxyRequest (opts) { + if (isString(opts)) { + opts = parseUrl(opts) + } else { + otps.method = opts.method != null ? + opts.method.toUpperCase() : + 'GET' + + opts.proxyMethod = opts.proxyMethod != null ? + opts.proxyMethod.toUpperCase() : + opts.method + } + + opts.createdAt = Date.now() + + const url = `/${await generateToken()} ` + this._proxyRequests[url] = opts + + return url + } + + handleProxyRequest (req, res, next) { + const {url} = req + const request = this._proxyRequests[url] + if (!request || req.method !== request.proxyMethod) { + next() + return + } + + // A proxy request can only be used once. + delete this._proxyRequests[url] + + proxyRequest(request, req, res) + + if (request.onSuccess) { + res.on('finish', request.onSuccess) + } + + const onFailure = request.onFailure || (() => {}) + + req.on('close', onFailure) + + const closeConnection = () => { + if (!res.headerSent) { + res.writeHead(500) + } + res.end() + + onFailure() + } + req.on('error', error => { + console.warn('request error', error.stack || error) + closeConnection() + }) + res.on('error', error => { + console.warn('response error', error.stack || error) + closeConnection() + }) + } + + // ----------------------------------------------------------------- + + watchTask (ref) { + let watcher = this._taskWatchers[ref] + if (!watcher) { + let resolve, reject + const promise = new Bluebird((resolve_, reject_) => { + resolve = resolve_ + reject = reject_ + }) + + // Register the watcher. + watcher = this._taskWatchers[ref] = { + promise, + resolve, + reject + } + + // Unregister the watcher once the promise is resolved. + promise.finally(() => { + delete this._taskWatchers[ref] + }) + } + + return watcher.promise + } + + // ----------------------------------------------------------------- + + registerAuthenticationProvider (provider) { + return this._authenticationProviders.add(provider) + } + + unregisterAuthenticationProvider (provider) { + return this._authenticationProviders.remove(provider) + } + + async authenticateUser (credentials) { + // TODO: remove when email has been replaced by username. + if (credentials.email) { + credentials.username = credentials.email + } else if (credentials.username) { + credentials.email = credentials.username + } + + for (let provider of this._authenticationProviders) { + try { + const result = await provider(credentials) + + if (result instanceof User) { + return result + } + + // TODO: replace by email by username. + if (result.username) { + result.email = result.username + delete result.username + } + + const user = await this.users.first(result) + if (user) return user + + return this.users.create(result.email) + } catch (error) { + // Authentication providers may just throw `null` to indicate + // they could not authenticate the user without any special + // errors. + if (error) console.error(error.stack || error) + } + } + + return false + } +} From a05b60f48e3de030ce0967f6f0fd1c8baa14f2a5 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 28 Apr 2015 13:06:57 +0200 Subject: [PATCH 012/140] Remove no-lone-blocks directive which is no longer needed. --- src/index.js | 2 -- src/utils.js | 2 -- 2 files changed, 4 deletions(-) diff --git a/src/index.js b/src/index.js index e53d9afba..adaf29b76 100644 --- a/src/index.js +++ b/src/index.js @@ -343,8 +343,6 @@ const registerTokenAuthenticationProvider = (xo) => { let help { - /* eslint no-lone-blocks: 0 */ - const {name, version} = require('../package') help = () => `${name} v${version}` } diff --git a/src/utils.js b/src/utils.js index 2b648bee2..21846f340 100644 --- a/src/utils.js +++ b/src/utils.js @@ -8,8 +8,6 @@ import xml2js from 'xml2js' import {promisify, method} from 'bluebird' import {randomBytes} from 'crypto' -/* eslint no-lone-blocks: 0 */ - // =================================================================== // Ensure the value is an array, wrap it if necessary. From 38a5698f901e9ce965e63d6dbca72d719ca6f93e Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 28 Apr 2015 14:36:16 +0200 Subject: [PATCH 013/140] Use async functions instead of Bluebird.coroutine(). --- src/index.js | 54 +++++++++++++++++++++++----------------------------- 1 file changed, 24 insertions(+), 30 deletions(-) diff --git a/src/index.js b/src/index.js index adaf29b76..c926a4003 100644 --- a/src/index.js +++ b/src/index.js @@ -25,7 +25,6 @@ import { NoSuchObject, NotImplemented } from './api-errors' -import {coroutine} from 'bluebird' import {createServer as createJsonRpcServer} from '@julien-f/json-rpc' import {readFile} from 'fs-promise' @@ -60,8 +59,8 @@ const DEPRECATED_ENTRIES = [ 'servers' ] -const loadConfiguration = coroutine(function * () { - const config = yield appConf.load('xo-server', { +async function loadConfiguration () { + const config = await appConf.load('xo-server', { defaults: DEFAULTS, ignoreUnknownFormats: true }) @@ -76,7 +75,7 @@ const loadConfiguration = coroutine(function * () { }) return config -}) +} // =================================================================== @@ -108,18 +107,18 @@ const loadPlugins = function (plugins, xo) { // =================================================================== -const makeWebServerListen = coroutine(function * (opts) { +async function makeWebServerListen (opts) { // Read certificate and key if necessary. const {certificate, key} = opts if (certificate && key) { - [opts.certificate, opts.key] = yield Bluebird.all([ + [opts.certificate, opts.key] = await Bluebird.all([ readFile(certificate), readFile(key) ]) } try { - const niceAddress = yield this.listen(opts) + const niceAddress = await this.listen(opts) debug(`Web server listening on ${niceAddress}`) } catch (error) { warn(`Web server could not listen on ${error.niceAddress}`) @@ -132,7 +131,7 @@ const makeWebServerListen = coroutine(function * (opts) { warn(' Address already in use.') } } -}) +} const createWebServer = opts => { const webServer = new WebServer() @@ -140,7 +139,6 @@ const createWebServer = opts => { return Bluebird .bind(webServer).return(opts).map(makeWebServerListen) .return(webServer) - } // =================================================================== @@ -298,7 +296,7 @@ const setUpConsoleProxy = (webServer, xo) => { // =================================================================== const registerPasswordAuthenticationProvider = (xo) => { - const passwordAuthenticationProvider = coroutine(function * ({ + async function passwordAuthenticationProvider ({ email, password, }) { @@ -308,18 +306,18 @@ const registerPasswordAuthenticationProvider = (xo) => { throw null } - const user = yield xo.users.first({email}) - if (!user || !(yield user.checkPassword(password))) { + const user = await xo.users.first({email}) + if (!user || !(await user.checkPassword(password))) { throw null } return user - }) + } xo.registerAuthenticationProvider(passwordAuthenticationProvider) } const registerTokenAuthenticationProvider = (xo) => { - const tokenAuthenticationProvider = coroutine(function * ({ + async function tokenAuthenticationProvider ({ token: tokenId, }) { /* eslint no-throw-literal: 0 */ @@ -328,35 +326,33 @@ const registerTokenAuthenticationProvider = (xo) => { throw null } - const token = yield xo.tokens.first(tokenId) + const token = await xo.tokens.first(tokenId) if (!token) { throw null } return token.get('user_id') - }) + } xo.registerAuthenticationProvider(tokenAuthenticationProvider) } // =================================================================== -let help -{ - const {name, version} = require('../package') - help = () => `${name} v${version}` -} +const help = (function ({name, version}) { + return () => `${name} v${version}` +})(require('../package')) // =================================================================== -const main = coroutine(function * (args) { +export default async function main (args) { if (args.indexOf('--help') !== -1 || args.indexOf('-h') !== -1) { return help() } - const config = yield loadConfiguration() + const config = await loadConfiguration() - const webServer = yield createWebServer(config.http.listen) + const webServer = await createWebServer(config.http.listen) // Now the web server is listening, drop privileges. try { @@ -376,7 +372,7 @@ const main = coroutine(function * (args) { // Create the main object which will connects to Xen servers and // manages all the models. const xo = new XO() - xo.start({ + await xo.start({ redis: { uri: config.redis && config.redis.uri } @@ -387,7 +383,7 @@ const main = coroutine(function * (args) { registerTokenAuthenticationProvider(xo) if (config.plugins) { - yield loadPlugins(config.plugins, xo) + await loadPlugins(config.plugins, xo) } // Connect is used to manage non WebSocket connections. @@ -405,7 +401,7 @@ const main = coroutine(function * (args) { setUpStaticFiles(connect, config.http.mounts) - if (!(yield xo.users.exists())) { + if (!(await xo.users.exists())) { const email = 'admin@admin.net' const password = 'admin' @@ -419,6 +415,4 @@ const main = coroutine(function * (args) { process.on('SIGTERM', closeWebServer) return eventToPromise(webServer, 'close') -}) - -exports = module.exports = main +} From 719b63ee02ebf3b793da0aa9575043ce7eb58b32 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 28 Apr 2015 14:44:44 +0200 Subject: [PATCH 014/140] Typo. --- src/xo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xo.js b/src/xo.js index 8cfe17732..8b4f2b8e1 100644 --- a/src/xo.js +++ b/src/xo.js @@ -346,7 +346,7 @@ export default class Xo extends EventEmitter { if (isString(opts)) { opts = parseUrl(opts) } else { - otps.method = opts.method != null ? + opts.method = opts.method != null ? opts.method.toUpperCase() : 'GET' From 13f36b3f79a54bbf45b67a9e8f2a34b9659b9689 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 28 Apr 2015 15:47:26 +0200 Subject: [PATCH 015/140] Various code simplifications and fixes. --- src/connection.js | 31 ++++++++----------------------- src/index.js | 29 ++++++++++++++++------------- src/xo.js | 24 ++++++++++++------------ 3 files changed, 36 insertions(+), 48 deletions(-) diff --git a/src/connection.js b/src/connection.js index a604f16ca..ed128f48c 100644 --- a/src/connection.js +++ b/src/connection.js @@ -2,43 +2,28 @@ import {EventEmitter} from 'events' // =================================================================== -const has = (function () { - return (val, prop) => hasOwnProperty.call(val, prop) -})(Object.hasOwnProperty) - -const noop = () => {} +// const noop = () => {} // =================================================================== export default class Connection extends EventEmitter { - constructor ({close, notify}) { + constructor () { super() - this._close = close - this.data = Object.create(null) - this.notify = notify + this._data = Object.create(null) } // Close the connection. close () { // Prevent errors when the connection is closed more than once. - this.close = noop - - this._close() + // this.close = noop this.emit('close') - - // Releases values AMAP to ease the garbage collecting. - for (let key in this) { - if (key !== 'close' && has(this, key)) { - delete this[key] - } - } } // Gets the value for this key. get (key, defaultValue) { - const {data} = this + const {_data: data} = this if (key in data) { return data[key] @@ -53,15 +38,15 @@ export default class Connection extends EventEmitter { // Checks whether there is a value for this key. has (key) { - return key in this.data + return key in this._data } // Sets the value for this key. set (key, value) { - this.data[key] = value + this._data[key] = value } unset (key) { - delete this.data[key] + delete this._data[key] } } diff --git a/src/index.js b/src/index.js index c926a4003..03db2fb72 100644 --- a/src/index.js +++ b/src/index.js @@ -206,33 +206,32 @@ const setUpApi = (webServer, xo) => { path: '/api/' }) - webSocketServer.on('connection', connection => { + webSocketServer.on('connection', socket => { debug('+ WebSocket connection') - let xoConnection + // Create the abstract XO object for this connection. + const connection = xo.createUserConnection() + connection.once('close', () => { + socket.close() + }) // Create the JSON-RPC server for this connection. const jsonRpc = createJsonRpcServer(message => { if (message.type === 'request') { - return api.call(xoConnection, message.method, message.params) + return api.call(connection, message.method, message.params) } }) - - // Create the abstract XO object for this connection. - xoConnection = xo.createUserConnection({ - close: bind(connection.close, connection), - notify: bind(jsonRpc.notify, jsonRpc) - }) + connection.notify = bind(jsonRpc.notify, jsonRpc) // Close the XO connection with this WebSocket. - connection.once('close', () => { + socket.once('close', () => { debug('- WebSocket connection') - xoConnection.close() + connection.close() }) // Connect the WebSocket to the JSON-RPC server. - connection.on('message', message => { + socket.on('message', message => { jsonRpc.write(message) }) @@ -242,7 +241,11 @@ const setUpApi = (webServer, xo) => { } } jsonRpc.on('data', data => { - connection.send(JSON.stringify(data), onSend) + // The socket may have been closed during the API method + // execution. + if (socket.readyState === WebSocket.OPEN) { + socket.send(JSON.stringify(data), onSend) + } }) }) } diff --git a/src/xo.js b/src/xo.js index 8b4f2b8e1..2232e85a7 100644 --- a/src/xo.js +++ b/src/xo.js @@ -123,7 +123,9 @@ export default class Xo extends EventEmitter { let exited = {} let dispatcherRegistered = false - const dispatcher = () => { + const dispatcher = Bluebird.method(() => { + dispatcherRegistered = false + const {connections} = this if (!isEmpty(entered)) { @@ -131,6 +133,7 @@ export default class Xo extends EventEmitter { type: 'enter', items: pluck(entered, 'val') } + entered = {} for (let id in connections) { const connection = connections[id] @@ -139,15 +142,14 @@ export default class Xo extends EventEmitter { connection.notify('all', enterParams) } } - - entered = {} } - if (!isEmpty(entered)) { + if (!isEmpty(exited)) { const exitParams = { type: 'exit', items: pluck(exited, 'val') } + exited = {} for (let id in connections) { const connection = connections[id] @@ -156,10 +158,8 @@ export default class Xo extends EventEmitter { connection.notify('all', exitParams) } } - - exited = {} } - } + }) this._xobjs.on('any', (event, items) => { if (!dispatcherRegistered) { @@ -326,16 +326,16 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- - createUserConnection (opts) { + createUserConnection () { const {connections} = this - const connection = new Connection(opts) + const connection = new Connection() const id = connection.id = this._nextConId++ - connection.on('close', () => { - connections[id] - }) connections[id] = connection + connection.on('close', () => { + delete connections[id] + }) return connection } From 453dee33ba655608a39a706f70c53ade9d386a79 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Wed, 29 Apr 2015 17:27:53 +0200 Subject: [PATCH 016/140] initial Docker control --- src/api/vm.coffee | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 5e66fcc95..e7a9539e6 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -1103,3 +1103,29 @@ stats.resolve = { } exports.stats = stats; + +#--------------------------------------------------------------------- +# Actions on a Docker container in a VM +# Can be: start, stop, pause, unpause, restart + +dockerContainerAction = $coroutine ({host, vm, container, action}) -> + xapi = @getXAPI vm + host = @getObject vm.$container + args = { + vmuuid: vm.UUID, + container: container, + } + console.log args + return $wait xapi.call 'host.call_plugin', host.ref, 'xscontainer', action, args + +dockerContainerAction.params = { + vm: { type: 'string' } + container: { type: 'string' } + action: { type: 'string' } +} + +dockerContainerAction.resolve = { + vm: ['vm', 'VM'], +} +dockerContainerAction.permission = 'admin' +exports.dockerContainerAction = docker From ad2de95f325d1aa311cd9fc784d2db2b5fa7e872 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 30 Apr 2015 17:45:53 +0200 Subject: [PATCH 017/140] Various updates. --- src/api-errors.js | 4 +- src/api.js | 74 ++++++------ src/api/token.coffee | 38 ------- src/api/user.coffee | 106 ------------------ src/api/user.js | 74 ++++++++++++ src/index.js | 12 +- src/xo.js | 261 +++++++++++++++++++++++++++++-------------- 7 files changed, 289 insertions(+), 280 deletions(-) delete mode 100644 src/api/token.coffee delete mode 100644 src/api/user.coffee create mode 100644 src/api/user.js diff --git a/src/api-errors.js b/src/api-errors.js index 8b6c345c7..5bd0a1b18 100644 --- a/src/api-errors.js +++ b/src/api-errors.js @@ -17,8 +17,8 @@ export class NotImplemented extends JsonRpcError { // ------------------------------------------------------------------- export class NoSuchObject extends JsonRpcError { - constructor () { - super('no such object', 1) + constructor (data) { + super('no such object', 1, data) } } diff --git a/src/api.js b/src/api.js index 8e8b95826..87a4b24fc 100644 --- a/src/api.js +++ b/src/api.js @@ -271,54 +271,46 @@ export default class Api { }, this) } - call (session, name, params) { + async call (session, name, params) { debug('%s(...)', name) - let method - let context + const method = this.getMethod(name) + if (!method) { + throw new MethodNotFound(name) + } - return Bluebird.try(() => { - method = this.getMethod(name) - if (!method) { - throw new MethodNotFound(name) + const context = Object.create(this.context) + context.api = this // Used by system.*(). + context.session = session + + // FIXME: too coupled with XO. + // Fetch and inject the current user. + const userId = session.get('user_id', undefined) + if (userId) { + context.user = await context._getUser(userId) + } + + await checkPermission.call(context, method) + checkParams(method, params) + + await resolveParams.call(context, method, params) + try { + let result = method.call(context, params) + + // If nothing was returned, consider this operation a success + // and return true. + if (result === undefined) { + result = true } - context = Object.create(this.context) - context.api = this // Used by system.*(). - context.session = session + debug('%s(...) → %s', name, typeof result) - // FIXME: too coupled with XO. - // Fetch and inject the current user. - const userId = session.get('user_id', undefined) - return userId === undefined ? null : context.users.first(userId) - }).then(function (user) { - context.user = user + return result + } catch (error) { + debug('Error: %s(...) → %s', name, error) - return checkPermission.call(context, method) - }).then(() => { - checkParams(method, params) - - return resolveParams.call(context, method, params) - }).then(params => { - return method.call(context, params) - }).then( - result => { - // If nothing was returned, consider this operation a success - // and return true. - if (result === undefined) { - result = true - } - - debug('%s(...) → %s', name, typeof result) - - return result - }, - error => { - debug('Error: %s(...) → %s', name, error) - - throw error - } - ) + throw error + } } getMethod (name) { diff --git a/src/api/token.coffee b/src/api/token.coffee deleted file mode 100644 index 86cedc25b..000000000 --- a/src/api/token.coffee +++ /dev/null @@ -1,38 +0,0 @@ -{$coroutine, $wait} = require '../fibers-utils' - -#===================================================================== - -# Creates a new token. -# -# TODO: Token permission. -exports.create = $coroutine -> - userId = @session.get 'user_id' - - # The user MUST be signed in and not with a token - @throw 'UNAUTHORIZED' if not userId? or @session.has 'token_id' - - # Creates the token. - token = $wait @tokens.generate userId - - return token.get('id') - -#--------------------------------------------------------------------- - -# Deletes a token. -delete_ = $coroutine ({token: tokenId}) -> - # Gets the token. - token = $wait @tokens.first tokenId - @throw 'NO_SUCH_OBJECT' unless token? - - # Deletes the token. - $wait @tokens.remove tokenId - - return true - -delete_.permission = 'admin' - -delete_.params = { - token: { type: 'string' } -} - -exports.delete = delete_ diff --git a/src/api/user.coffee b/src/api/user.coffee deleted file mode 100644 index 2cbfc8556..000000000 --- a/src/api/user.coffee +++ /dev/null @@ -1,106 +0,0 @@ -{$coroutine, $wait} = require '../fibers-utils' - -#===================================================================== - -# Creates a new user. -exports.create = $coroutine ({email, password, permission}) -> - # Creates the user. - user = $wait @users.create email, password, permission - - return user.get('id') -exports.create.permission = 'admin' -exports.create.params = { - email: { type: 'string' } - password: { type: 'string' } - permission: { type: 'string', optional: true} -} - -# Deletes an existing user. -# -# FIXME: a user should not be able to delete itself. -exports.delete = $coroutine ({id}) -> - # The user cannot delete himself. - @throw 'INVALID_PARAMS' if id is @session.get 'user_id' - - # Throws an error if the user did not exist. - @throw 'NO_SUCH_OBJECT' unless $wait @users.remove id - - return true -exports.delete.permission = 'admin' -exports.delete.params = { - id: { type: 'string' } -} - -# Changes the password of the current user. -exports.changePassword = $coroutine ({old, new: newP}) -> - # Gets the current user (which MUST exist). - user = $wait @users.first @session.get 'user_id' - - # Checks its old password. - @throw 'INVALID_CREDENTIAL' unless $wait user.checkPassword old - - # Sets the new password. - $wait user.setPassword newP - - # Updates the user. - $wait @users.update user - - return true -exports.changePassword.permission = '' # Signed in. -exports.changePassword.params = { - old: { type: 'string' } - new: { type: 'string' } -} - -# Returns the user with a given identifier. -exports.get = $coroutine ({id}) -> - # Only an administrator can see another user. - @checkPermission 'admin' unless @session.get 'user_id' is id - - # Retrieves the user. - user = $wait @users.first id - - # Throws an error if it did not exist. - @throw 'NO_SUCH_OBJECT' unless user - - return @getUserPublicProperties user -exports.get.params = { - id: { type: 'string' } -} - -# Returns all users. -exports.getAll = $coroutine -> - # Retrieves the users. - users = $wait @users.get() - - # Filters out private properties. - for user, i in users - users[i] = @getUserPublicProperties user - - return users -exports.getAll.permission = 'admin' - -# Changes the properties of an existing user. -exports.set = $coroutine ({id, email, password, permission}) -> - # Retrieves the user. - user = $wait @users.first id - - # Throws an error if it did not exist. - @throw 'NO_SUCH_OBJECT' unless user - - # Updates the provided properties. - user.set {email} if email? - user.set {permission} if permission? - $wait user.setPassword password if password? - - # Updates the user. - $wait @users.update user - - return true -exports.set.permission = 'admin' -exports.set.params = { - id: { type: 'string' } - email: { type: 'string', optional: true } - password: { type: 'string', optional: true } - permission: { type: 'string', optional: true } -} diff --git a/src/api/user.js b/src/api/user.js new file mode 100644 index 000000000..03d72e4a9 --- /dev/null +++ b/src/api/user.js @@ -0,0 +1,74 @@ +import map from 'lodash.map' + +import {InvalidParameters} from '../api-errors' + +// =================================================================== + +export async function create ({email, password, permission}) { + return (await this.createUser({email, password, permission})).id +} + +create.description = 'creates a new user' + +create.permission = 'admin' + +create.params = { + email: { type: 'string' }, + password: { type: 'string' }, + permission: { type: 'string', optional: true} +} + +// ------------------------------------------------------------------- + +// Deletes an existing user. +async function delete_ ({id}) { + if (id === this.session.get('user_id')) { + throw new InvalidParameters('an user cannot delete itself') + } + + await this.deleteUser(id) +} + +// delete is not a valid identifier. +export {delete_ as delete} + +delete_.description = 'deletes an existing user' + +delete_.permission = 'admin' + +delete_.params = { + id: { type: 'string' } +} + +// ------------------------------------------------------------------- + +// TODO: remove this function when users are integrated to the main +// collection. +export async function getAll () { + // Retrieves the users. + const users = await this._users.get() + + // Filters out private properties. + return map(users, this.getUserPublicProperties) +} + +getAll.description = 'returns all the existing users' + +getAll.permission = 'admin' + +// ------------------------------------------------------------------- + +export async function set ({id, email, password, permission}) { + await this.updateUser(id, {email, password, permission}) +} + +set.description = 'changes the properties of an existing user' + +set.permission = 'admin' + +set.params = { + id: { type: 'string' }, + email: { type: 'string', optional: true }, + password: { type: 'string', optional: true }, + permission: { type: 'string', optional: true } +} diff --git a/src/index.js b/src/index.js index 03db2fb72..fbf1aeb18 100644 --- a/src/index.js +++ b/src/index.js @@ -309,7 +309,8 @@ const registerPasswordAuthenticationProvider = (xo) => { throw null } - const user = await xo.users.first({email}) + // TODO: this is deprecated and should be removed. + const user = await xo._users.first({email}) if (!user || !(await user.checkPassword(password))) { throw null } @@ -329,12 +330,7 @@ const registerTokenAuthenticationProvider = (xo) => { throw null } - const token = await xo.tokens.first(tokenId) - if (!token) { - throw null - } - - return token.get('user_id') + return (await xo.getAuthenticationToken(tokenId)).user_id } xo.registerAuthenticationProvider(tokenAuthenticationProvider) @@ -404,7 +400,7 @@ export default async function main (args) { setUpStaticFiles(connect, config.http.mounts) - if (!(await xo.users.exists())) { + if (!(await xo._users.exists())) { const email = 'admin@admin.net' const password = 'admin' diff --git a/src/xo.js b/src/xo.js index 2232e85a7..6ef5b7f64 100644 --- a/src/xo.js +++ b/src/xo.js @@ -12,12 +12,33 @@ import {parse as parseUrl} from 'url' import Connection from './connection' import spec from './spec' +import User, {Users} from './models/user' import {$MappedCollection as MappedCollection} from './MappedCollection' import {Acls} from './models/acl' import {generateToken} from './utils' +import {NoSuchObject} from './api-errors' import {Servers} from './models/server' import {Tokens} from './models/token' -import User, {Users} from './models/user' + +// =================================================================== + +class NoSuchAuthenticationToken extends NoSuchObject { + constructor (id) { + super({ + type: 'authentication token', + id + }) + } +} + +class NoSuchUser extends NoSuchObject { + constructor (id) { + super({ + type: 'user', + id + }) + } +} // =================================================================== @@ -26,21 +47,25 @@ export default class Xo extends EventEmitter { super() // These will be initialized in start() + // + // TODO: remove and put everything in the `_objects` collection. + this._tokens = null + this._users = null this._UUIDsToKeys = null + this.acls = null this.servers = null - this.tokens = null - this.users = null // Connections to Xen servers. this._xapis = Object.create(null) // Connections to users. this._nextConId = 0 - this.connections = Object.create(null) + this._connections = Object.create(null) // Collections of XAPI objects mapped to XO Api. this._xobjs = new MappedCollection() spec.call(this._xobjs) + this._watchXobjs() this._proxyRequests = Object.create(null) @@ -87,12 +112,12 @@ export default class Xo extends EventEmitter { prefix: 'xo:server', indexes: ['host'] }) - this.tokens = new Tokens({ + this._tokens = new Tokens({ connection: redis, prefix: 'xo:token', indexes: ['user_id'] }) - this.users = new Users({ + this._users = new Users({ connection: redis, prefix: 'xo:user', indexes: ['email'] @@ -100,91 +125,21 @@ export default class Xo extends EventEmitter { // Proxies tokens/users related events to XO and removes tokens // when their related user is removed. - this.tokens.on('remove', ids => { + this._tokens.on('remove', ids => { for (let id of ids) { this.emit(`token.revoked:${id}`) } }) - this.users.on('remove', async function (ids) { + this._users.on('remove', async function (ids) { for (let id of ids) { this.emit(`user.revoked:${id}`) - } - - const tokens = await this.tokens.get({ user_id: id }) - for (let token of tokens) { - this.tokens.remove(token.id) + const tokens = await this._tokens.get({ user_id: id }) + for (let token of tokens) { + this._tokens.remove(token.id) + } } }.bind(this)) - // When objects enter or exists, sends a notification to all - // connected clients. - { - let entered = {} - let exited = {} - - let dispatcherRegistered = false - const dispatcher = Bluebird.method(() => { - dispatcherRegistered = false - - const {connections} = this - - if (!isEmpty(entered)) { - const enterParams = { - type: 'enter', - items: pluck(entered, 'val') - } - entered = {} - - for (let id in connections) { - const connection = connections[id] - - if (connection.has('user_id')) { - connection.notify('all', enterParams) - } - } - } - - if (!isEmpty(exited)) { - const exitParams = { - type: 'exit', - items: pluck(exited, 'val') - } - exited = {} - - for (let id in connections) { - const connection = connections[id] - - if (connection.has('user_id')) { - connection.notify('all', exitParams) - } - } - } - }) - - this._xobjs.on('any', (event, items) => { - if (!dispatcherRegistered) { - dispatcherRegistered = true - process.nextTick(dispatcher) - } - - if (event === 'exit') { - forEach(items, item => { - const {key} = item - - delete entered[key] - exited[key] = item - }) - } else { - forEach(items, item => { - const {key} = item - - delete exited[key] - entered[key] = item - }) - } - }) - } - // Exports the map from UUIDs to keys. this._UUIDsToKeys = this._xobjs.get('xo').$UUIDsToKeys @@ -201,6 +156,66 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- + async createUser ({email, password, permission}) { + // TODO: use plain objects + const user = await this._users.create(email, password, permission) + + return user.properties + } + + async deleteUser (id) { + if (!await this._users.remove(id)) { + throw new NoSuchUser(id) + } + } + + async updateUser(id, {email, password, permission}) { + const user = await this._getUser(id) + + if (email) user.set('email', email) + if (password) user.setPassword(password) + if (permission) user.set('permission', permission) + + await this._users.update(user) + } + + // TODO: this method will no longer be async when users are + // integrated to the main collection. + async _getUser (id) { + const user = await this._users.first(id) + if (!user) { + throw new NoSuchUser(id) + } + + return user + } + + // ----------------------------------------------------------------- + + async createAuthenticationToken (userId) { + // TODO: use plain objects + const token = await this._tokens.generate(userId) + + return token.properties + } + + async deleteAuthenticationToken (id) { + if (!await this._token.remove(id)) { + throw new NoSuchAuthenticationToken(id) + } + } + + async getAuthenticationToken (id) { + const token = await this._tokens.first(id) + if (!token) { + throw new NoSuchAuthenticationToken(id) + } + + return token.properties + } + + // ----------------------------------------------------------------- + connectServer (server) { if (server.properties) { server = server.properties @@ -327,7 +342,7 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- createUserConnection () { - const {connections} = this + const {_connections: connections} = this const connection = new Connection() const id = connection.id = this._nextConId++ @@ -461,10 +476,10 @@ export default class Xo extends EventEmitter { delete result.username } - const user = await this.users.first(result) + const user = await this._users.first(result) if (user) return user - return this.users.create(result.email) + return this._users.create(result.email) } catch (error) { // Authentication providers may just throw `null` to indicate // they could not authenticate the user without any special @@ -475,4 +490,80 @@ export default class Xo extends EventEmitter { return false } + + // ----------------------------------------------------------------- + + // When objects enter or exists, sends a notification to all + // connected clients. + // + // TODO: remove when all objects are in `this._objects`. + _watchXobjs () { + const { + _connections: connections, + _xobjs: xobjs + } = this + + let entered = {} + let exited = {} + + let dispatcherRegistered = false + const dispatcher = Bluebird.method(() => { + dispatcherRegistered = false + + if (!isEmpty(entered)) { + const enterParams = { + type: 'enter', + items: pluck(entered, 'val') + } + entered = {} + + for (let id in connections) { + const connection = connections[id] + + if (connection.has('user_id')) { + connection.notify('all', enterParams) + } + } + } + + if (!isEmpty(exited)) { + const exitParams = { + type: 'exit', + items: pluck(exited, 'val') + } + exited = {} + + for (let id in connections) { + const connection = connections[id] + + if (connection.has('user_id')) { + connection.notify('all', exitParams) + } + } + } + }) + + xobjs.on('any', (event, items) => { + if (!dispatcherRegistered) { + dispatcherRegistered = true + process.nextTick(dispatcher) + } + + if (event === 'exit') { + forEach(items, item => { + const {key} = item + + delete entered[key] + exited[key] = item + }) + } else { + forEach(items, item => { + const {key} = item + + delete exited[key] + entered[key] = item + }) + } + }) + } } From bcc2244fdb0300dc45a02a2217c5e5d52978e8b8 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 30 Apr 2015 18:31:42 +0200 Subject: [PATCH 018/140] Various updates. --- src/api/server.js | 96 +++++++++++------------------------ src/xo.js | 125 +++++++++++++++++++++++++++++++++++++++------- 2 files changed, 134 insertions(+), 87 deletions(-) diff --git a/src/api/server.js b/src/api/server.js index 6fbcf5515..0fc8af573 100644 --- a/src/api/server.js +++ b/src/api/server.js @@ -3,30 +3,23 @@ import {JsonRpcError, NoSuchObject} from '../api-errors' // =================================================================== -// FIXME: We are storing passwords which is bad! -// Could we use tokens instead? - -export const add = coroutine(function * ({ +export async function add ({ host, username, password, autoConnect = true }) { - const server = yield this.servers.add({ - host: host, - username: username, - password: password - }) + const server = await this.addXenServer({host, username, password}) if (autoConnect) { // Connect asynchronously, ignore any error. - this.connectServer(server).catch(() => {}) + this.connectXenServer(server.id).catch(() => {}) } - return server.get('id') -}) + return server.id +} -add.description = 'Add a new Xen server to XO' +add.description = 'register a new Xen server' add.permission = 'admin' @@ -48,15 +41,11 @@ add.params = { // ------------------------------------------------------------------- -export const remove = coroutine(function * ({id}) { - try { - yield this.disconnectServer(id) - } catch (error) {} +export async function remove ({id}) { + this.removeXenServer(id) +} - if (!(yield this.servers.remove(id))) { - throw new NoSuchObject() - } -}) +remove.description = 'unregister a Xen server' remove.permission = 'admin' @@ -68,8 +57,10 @@ remove.params = { // ------------------------------------------------------------------- +// TODO: remove this function when users are integrated to the main +// collection. export const getAll = coroutine(function * () { - const servers = yield this.servers.get() + const servers = yield this._servers.get() for (let i = 0, n = servers.length; i < n; ++i) { servers[i] = this.getServerPublicProperties(servers[i]) @@ -78,32 +69,17 @@ export const getAll = coroutine(function * () { return servers }) +getAll.description = 'returns all the registered Xen server' + getAll.permission = 'admin' // ------------------------------------------------------------------- -export const set = coroutine(function * ({id, host, username, password}) { - const server = yield this.servers.first(id) - if (!server) { - throw new NoSuchObject() - } - if (host != null) { - server.set({ - host: host - }) - } - if (username != null) { - server.set({ - username: username - }) - } - if (password != null) { - server.set({ - password: password - }) - } - yield this.servers.update(server) -}) +export async function set ({id, host, username, password}) { + await this.updateXenServer(id, {host, username, password}) +} + +set.description = 'changes the propeorties of a Xen server' set.permission = 'admin' @@ -127,24 +103,11 @@ set.params = { // ------------------------------------------------------------------- -export const connect = coroutine(function * ({id}) { - const server = yield this.servers.first(id) - if (!server) { - throw new NoSuchObject() - } +export async function connect ({id}) { + await this.connectXenServer(id) +} - try { - yield this.connectServer(server) - } catch (error) { - if (error.code === 'SESSION_AUTHENTICATION_FAILED') { - throw new JsonRpcError('authentication failed') - } - if (error.code === 'EHOSTUNREACH') { - throw new JsonRpcError('host unreachable') - } - throw error - } -}) +connect.description = 'connect a Xen server' connect.permission = 'admin' @@ -156,14 +119,11 @@ connect.params = { // ------------------------------------------------------------------- -export const disconnect = coroutine(function * ({id}) { - const server = yield this.servers.first(id) - if (!server) { - throw new NoSuchObject() - } +export async function disconnect ({id}) { + await this.disconnectXenServer(id) +} - return this.disconnectServer(server) -}) +disconnect.description = 'disconnect a Xen server' disconnect.permission = 'admin' diff --git a/src/xo.js b/src/xo.js index 6ef5b7f64..6ccf838ca 100644 --- a/src/xo.js +++ b/src/xo.js @@ -42,18 +42,32 @@ class NoSuchUser extends NoSuchObject { // =================================================================== +const PERSITENT_TYPES = { + +} +const isObjectPersistent = object => object.$type in PERSITENT_TYPES + +const PUBLIC_TYPES = { + +} +const isObjectPublic = object => object.$type in PUBLIC_TYPES + +// =================================================================== + export default class Xo extends EventEmitter { constructor () { super() + this._objects = new XoCollection() + // These will be initialized in start() // // TODO: remove and put everything in the `_objects` collection. + this._servers = null this._tokens = null this._users = null this._UUIDsToKeys = null this.acls = null - this.servers = null // Connections to Xen servers. this._xapis = Object.create(null) @@ -107,7 +121,7 @@ export default class Xo extends EventEmitter { prefix: 'xo:acl', indexes: ['subject', 'object'] }) - this.servers = new Servers({ + this._servers = new Servers({ connection: redis, prefix: 'xo:server', indexes: ['host'] @@ -144,8 +158,8 @@ export default class Xo extends EventEmitter { this._UUIDsToKeys = this._xobjs.get('xo').$UUIDsToKeys // Connects to existing servers. - for (let server of await this.servers.get()) { - this.connectServer(server).catch(error => { + for (let server of await this._servers.get()) { + this.connectXenServer(server.id).catch(error => { console.error( `[WARN] ${server.host}:`, error[0] || error.stack || error.code || error @@ -192,7 +206,7 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- - async createAuthenticationToken (userId) { + async createAuthenticationToken ({userId}) { // TODO: use plain objects const token = await this._tokens.generate(userId) @@ -216,10 +230,47 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- - connectServer (server) { - if (server.properties) { - server = server.properties + async registerXenServer ({host, username, password}) { + // FIXME: We are storing passwords which is bad! + // Could we use tokens instead? + // TODO: use plain objects + const server = await this._servers.add({host, username, password}) + + return server.properties + } + + async unregisterXenServer (id) { + this.disconnectXenServer(id).catch(() => {}) + + if (!await this._servers.remove(id)) { + throw new NoSuchXenServer(id) } + } + + async updateXenServer (id, {host, username, password}) { + const server = await this._getXenServer(id) + + if (host) server.set('host', host) + if (username) server.set('username', username) + if (password) server.set('password', password) + + await this._servers.update(server) + } + + // TODO: this method will no longer be async when servers are + // integrated to the main collection. + async _getXenServer (id) { + const server = await this._servers.first(id) + if (!server) { + throw new NoSuchXenServer(id) + } + + return server + } + + // TODO the previous state should be marked as connected. + async connectXenServer (id) { + const server = (await this._getXenServer(id)).properties const xapi = this._xapis[server.id] = createXapiClient({ url: server.host, @@ -255,21 +306,24 @@ export default class Xo extends EventEmitter { )) }) - return xapi.connect() + try { + await xapi.connect() + } catch (error) { + if (error.code === 'SESSION_AUTHENTICATION_FAILED') { + throw new JsonRpcError('authentication failed') + } + if (error.code === 'EHOSTUNREACH') { + throw new JsonRpcError('host unreachable') + } + throw error + } } - async disconnectServer (server) { - const id = ( - server && ( - server.properties && server.properties.id || - server.id - ) || - server - ) - + // TODO the previous state should be marked as disconnected. + async disconnectXenServer (id) { const xapi = this._xapis[id] if (!xapi) { - throw new Error('no such server') + throw new NoSuchXenServer(id) } delete this._xapis[id] @@ -493,6 +547,39 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- + // Watches objects changes. + // + // Some should be forwarded to connected clients. + // Some should be persistently saved. + _watchObjects () { + const { + _connections: connections, + _objects: objects + } = this + + const publicObjects = new XoView(objects, isObjectPublic) + publicObjects.on('add', objects => { + + }) + publicObjects.on('update', objects => { + + }) + publicObjects.on('remove', objects => { + + }) + + const persistentObjects = new XoView(objects, isObjectPersistent) + persistentObjects.on('add', objects => { + + }) + persistentObjects.on('update', objects => { + + }) + persistentObjects.on('remove', objects => { + + }) + } + // When objects enter or exists, sends a notification to all // connected clients. // From 5330cc5ae98e28343df875fd7210f105fe7561e7 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Sat, 2 May 2015 14:04:14 +0200 Subject: [PATCH 019/140] fix a typo --- src/api/vm.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index e7a9539e6..01de0dccc 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -1128,4 +1128,4 @@ dockerContainerAction.resolve = { vm: ['vm', 'VM'], } dockerContainerAction.permission = 'admin' -exports.dockerContainerAction = docker +exports.dockerContainerAction = dockerContainerAction From 6fb5fb63e790aa83bb693cdd5c1b8099f7ead3f3 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Sat, 2 May 2015 18:14:50 +0200 Subject: [PATCH 020/140] allow to patch one host only and not the whole pool --- package.json | 3 ++- src/api/host.coffee | 58 +++++++++++++++++++++++++++++++++++++++++++++ src/api/pool.coffee | 15 +++++++++--- src/spec.coffee | 4 ++++ 4 files changed, 76 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index f09015363..c750ff952 100644 --- a/package.json +++ b/package.json @@ -47,10 +47,11 @@ "lodash.assign": "^3.0.0", "lodash.bind": "^3.0.0", "lodash.clone": "^3.0.1", - "lodash.difference": "^3.0.1", + "lodash.difference": "^3.2.0", "lodash.filter": "^3.1.0", "lodash.find": "^3.0.0", "lodash.findindex": "^3.0.0", + "lodash.findlast": "^3.2.0", "lodash.foreach": "^3.0.1", "lodash.has": "^3.0.0", "lodash.includes": "^3.1.1", diff --git a/src/api/host.coffee b/src/api/host.coffee index 8cf1fc24c..cb2f97b41 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -1,4 +1,10 @@ {$coroutine, $wait} = require '../fibers-utils' +$request = require('bluebird').promisify(require('request')) +{parseXml} = require '../utils' +$findLast = require 'lodash.findlast' +$difference = require 'lodash.difference' +$forEach = require 'lodash.foreach' +$find = require 'lodash.find' #===================================================================== @@ -206,3 +212,55 @@ createNetwork.resolve = { } createNetwork.permission = 'admin' exports.createNetwork = createNetwork + +#--------------------------------------------------------------------- +# Returns an array of missing new patches in the host +# Returns an empty array if up-to-date +# Throws an error if the host is not running the latest XS version + +patchCheck = $coroutine ({host}) -> + xapi = @getXAPI host + + [response, body] = $wait $request { + method: 'get' + rejectUnauthorized: false + url: 'http://updates.xensource.com/XenServer/updates.xml' + } + + if response.statusCode isnt 200 + throw new Error('Cannot fetch the patch list from Citrix') + + json = parseXml(body) + # get the latest version of XS in the XML + latestVersion = $findLast(json.patchdata.serverversions.version, 'latest': 'true') + if host.version isnt latestVersion.value + throw new Error('Please upgrade to '+latestVersion.name) + # create the list of missing patches + missingPatchList = $difference(latestVersion.patch,host.patches) + # returns the list with patch name, description etc. + result = [] + if missingPatchList + $forEach missingPatchList, (value, key) -> + currentPatch = $find(json.patchdata.patches.patch,value) + result[key] = { + uuid: currentPatch.uuid, + name_label: currentPatch['name-label'], + name_description: currentPatch['name-description'], + documentation: currentPatch['url'], + guidance: currentPatch['after-apply-guidance'], + date: currentPatch['timestamp'], + version: currentPatch['version'], + url: currentPatch['patch-url'] + } + + return result + +patchCheck.params = { + id: { type: 'string' } +} + +patchCheck.resolve = { + host: ['id', 'host'], +} + +exports.patchCheck = patchCheck; diff --git a/src/api/pool.coffee b/src/api/pool.coffee index b261b6b1e..97919e326 100644 --- a/src/api/pool.coffee +++ b/src/api/pool.coffee @@ -38,17 +38,22 @@ set.resolve = { exports.set = set #--------------------------------------------------------------------- +# Upload a patch and apply it +# If host is given, only apply to a host and not the whole pool # FIXME -patch = $coroutine ({pool}) -> +patch = $coroutine ({pool, host}) -> xapi = @getXAPI pool - host = @getObject pool.master, 'host' taskRef = $wait xapi.call 'task.create', 'Patch upload from XO', '' @watchTask taskRef .then $coroutine (patchRef) -> $debug 'Patch upload succeeded' - xapi.call 'pool_patch.pool_apply', patchRef + if not host + xapi.call 'pool_patch.pool_apply', patchRef + else + host = @getObject host + xapi.call 'pool_patch.apply', patchRef, host.ref return .catch (error) -> $debug 'Patch upload failed: %j', error @@ -57,6 +62,9 @@ patch = $coroutine ({pool}) -> xapi.call 'task.destroy', taskRef return + if not host + host = @getObject pool.master, 'host' + url = $wait @registerProxyRequest { # Receive a POST but send a PUT. method: 'put' @@ -75,6 +83,7 @@ patch = $coroutine ({pool}) -> patch.params = { pool: { type: 'string' }, + host: { type: 'string', optional: true }, } patch.resolve = { diff --git a/src/spec.coffee b/src/spec.coffee index 6e94b0f1c..8b159ac0d 100644 --- a/src/spec.coffee +++ b/src/spec.coffee @@ -434,6 +434,10 @@ module.exports = -> if: $isVMRunning val: -> @val.CPUs.number } + + version: -> @genval.software_version.product_version + + build: -> @genval.software_version.build_number } #------------------------------------------------------------------- From f0b0277b9dfee8a0ffb2c7d32d3fe1d3e81bc289 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 5 May 2015 10:24:13 +0200 Subject: [PATCH 021/140] Fix Xen error handling (#56). --- src/api/sr.js | 14 +++++++------- src/api/vm.coffee | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/api/sr.js b/src/api/sr.js index a07f4c2da..6ae65f3a1 100644 --- a/src/api/sr.js +++ b/src/api/sr.js @@ -259,11 +259,11 @@ export const probeNfs = coroutine(function ({ throw new Error('the call above should have thrown an error') } catch (error) { - if (error[0] !== 'SR_BACKEND_FAILURE_101') { + if (error.code !== 'SR_BACKEND_FAILURE_101') { throw error } - xml = parseXml(error[3]) + xml = parseXml(error.params[2]) } const nfsExports = [] @@ -396,14 +396,14 @@ export const probeIscsiIqns = coroutine(function ({ throw new Error('the call above should have thrown an error') } catch (error) { - if (error[0] === 'SR_BACKEND_FAILURE_141') { + if (error.code === 'SR_BACKEND_FAILURE_141') { return [] } - if (error[0] !== 'SR_BACKEND_FAILURE_96') { + if (error.code !== 'SR_BACKEND_FAILURE_96') { throw error } - xml = parseXml(error[3]) + xml = parseXml(error.params[2]) } const targets = [] @@ -474,11 +474,11 @@ export const probeIscsiLuns = coroutine(function ({ throw new Error('the call above should have thrown an error') } catch (error) { - if (error[0] !== 'SR_BACKEND_FAILURE_107') { + if (error.code !== 'SR_BACKEND_FAILURE_107') { throw error } - xml = parseXml(error[3]) + xml = parseXml(error.params[2]) } const luns = [] diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 5e66fcc95..5780904c7 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -706,7 +706,7 @@ stop = $coroutine ({vm, force}) -> try $wait xapi.call 'VM.clean_shutdown', vm.ref catch error - if error[0] is 'VM_MISSING_PV_DRIVERS' + if error.code is 'VM_MISSING_PV_DRIVERS' # TODO: Improve reporting: this message is unclear. @throw 'INVALID_PARAMS' else From adeb5c2344b9986abb65e556e906469992687bf7 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 5 May 2015 11:40:20 +0200 Subject: [PATCH 022/140] Put high level Xen Server features in dedicated class. --- src/api/host.coffee | 46 ++++------------------------------ src/xapi.js | 60 +++++++++++++++++++++++++++++++++++++++++++++ src/xo.js | 4 +-- 3 files changed, 67 insertions(+), 43 deletions(-) create mode 100644 src/xapi.js diff --git a/src/api/host.coffee b/src/api/host.coffee index cb2f97b41..3cb3921a0 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -1,8 +1,6 @@ {$coroutine, $wait} = require '../fibers-utils' $request = require('bluebird').promisify(require('request')) {parseXml} = require '../utils' -$findLast = require 'lodash.findlast' -$difference = require 'lodash.difference' $forEach = require 'lodash.foreach' $find = require 'lodash.find' @@ -218,49 +216,15 @@ exports.createNetwork = createNetwork # Returns an empty array if up-to-date # Throws an error if the host is not running the latest XS version -patchCheck = $coroutine ({host}) -> - xapi = @getXAPI host +listMissingPatches = $coroutine ({host}) -> + return @getXAPI(host).listMissingHostPatches(host) - [response, body] = $wait $request { - method: 'get' - rejectUnauthorized: false - url: 'http://updates.xensource.com/XenServer/updates.xml' - } - - if response.statusCode isnt 200 - throw new Error('Cannot fetch the patch list from Citrix') - - json = parseXml(body) - # get the latest version of XS in the XML - latestVersion = $findLast(json.patchdata.serverversions.version, 'latest': 'true') - if host.version isnt latestVersion.value - throw new Error('Please upgrade to '+latestVersion.name) - # create the list of missing patches - missingPatchList = $difference(latestVersion.patch,host.patches) - # returns the list with patch name, description etc. - result = [] - if missingPatchList - $forEach missingPatchList, (value, key) -> - currentPatch = $find(json.patchdata.patches.patch,value) - result[key] = { - uuid: currentPatch.uuid, - name_label: currentPatch['name-label'], - name_description: currentPatch['name-description'], - documentation: currentPatch['url'], - guidance: currentPatch['after-apply-guidance'], - date: currentPatch['timestamp'], - version: currentPatch['version'], - url: currentPatch['patch-url'] - } - - return result - -patchCheck.params = { +listMissingPatches.params = { id: { type: 'string' } } -patchCheck.resolve = { +listMissingPatches.resolve = { host: ['id', 'host'], } -exports.patchCheck = patchCheck; +exports.listMissingPatches = listMissingPatches; diff --git a/src/xapi.js b/src/xapi.js new file mode 100644 index 000000000..d1f540b13 --- /dev/null +++ b/src/xapi.js @@ -0,0 +1,60 @@ +import find from 'lodash.find' +import forEach from 'lodash.foreach' +import map from 'lodash.map' +import omit from 'lodash.omit' +import request from 'request' +import {Xapi as XapiBase} from 'xen-api' +import {promisify} from 'bluebird' + +import {parseXml} from './utils' +import {JsonRpcError} from './api-errors' + +// =================================================================== + +const requestPromise = promisify(request) + +// =================================================================== + +export default class Xapi extends XapiBase { + // TODO: memoize + async _listAvailableHostPatches (version) { + const [{statusCode}, body] = await requestPromise( + 'http://updates.xensource.com/XenServer/updates.xml' + ) + + if (statusCode !== 200) { + throw new JsonRpcError('cannot fetch patches list from Citrix') + } + + const data = parseXml(body) + const {patch: uuids} = find( + data.patchdata.serverversions.version, + { value: version } + ) + + const patches = {} + forEach(uuids, ({uuid}) => { + const patch = find(data.patchdata.patches.patch, {uuid}) + patches[uuid] = { + id: patch.uuid, + date: patch.timestamp, + description: patch['name-description'], + documentationUrl: patch.url, + guidance: patch['after-apply-guidance'], + name: patch['name-label'], + url: patch['patch-url'], + + // TODO: what does it mean, should we handle it? + // version: patch.version, + } + }) + return patches + } + + async listMissingHostPatches (host) { + return omit( + await this._listAvailableHostPatches(host.version), + host.patches + ) + } +} diff --git a/src/xo.js b/src/xo.js index 2232e85a7..3e0f90a11 100644 --- a/src/xo.js +++ b/src/xo.js @@ -6,12 +6,12 @@ import isString from 'lodash.isstring' import pluck from 'lodash.pluck' import proxyRequest from 'proxy-http-request' import {createClient as createRedisClient} from 'then-redis' -import {createClient as createXapiClient} from 'xen-api' import {EventEmitter} from 'events' import {parse as parseUrl} from 'url' import Connection from './connection' import spec from './spec' +import Xapi from './xapi' import {$MappedCollection as MappedCollection} from './MappedCollection' import {Acls} from './models/acl' import {generateToken} from './utils' @@ -206,7 +206,7 @@ export default class Xo extends EventEmitter { server = server.properties } - const xapi = this._xapis[server.id] = createXapiClient({ + const xapi = this._xapis[server.id] = new Xapi({ url: server.host, auth: { user: server.username, From 1441d9f4ee63202c6dd7116c557c0b8f36ea0290 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 5 May 2015 17:06:52 +0200 Subject: [PATCH 023/140] host.listMissingPatches() & host.installPatchFromUrl(). --- package.json | 2 + src/api/host.coffee | 21 +++++- src/xapi.js | 166 ++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 180 insertions(+), 9 deletions(-) diff --git a/package.json b/package.json index c750ff952..1a0168016 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ }, "dependencies": { "@julien-f/json-rpc": "^0.3.5", + "@julien-f/unzip": "^0.2.1", "app-conf": "^0.3.4", "babel-runtime": "^5", "base64url": "1.0.4", @@ -39,6 +40,7 @@ "exec-promise": "^0.5.1", "fibers": "~1.0.5", "fs-promise": "^0.3.1", + "got": "^2.9.2", "graceful-fs": "^3.0.6", "hashy": "~0.4.2", "http-server-plus": "^0.5.1", diff --git a/src/api/host.coffee b/src/api/host.coffee index 3cb3921a0..281af179b 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -220,11 +220,26 @@ listMissingPatches = $coroutine ({host}) -> return @getXAPI(host).listMissingHostPatches(host) listMissingPatches.params = { - id: { type: 'string' } + host: { type: 'string' } } listMissingPatches.resolve = { - host: ['id', 'host'], + host: ['host', 'host'], } -exports.listMissingPatches = listMissingPatches; +exports.listMissingPatches = listMissingPatches + +#--------------------------------------------------------------------- + +installPatchFromUrl = $coroutine ({host, url}) -> + return @getXAPI(host).installHostPatchFromUrl(host, url) + +installPatchFromUrl.params = { + host: { type: 'string' } +} + +installPatchFromUrl.resolve = { + host: ['host', 'host'] +} + +exports.installPatchFromUrl = installPatchFromUrl diff --git a/src/xapi.js b/src/xapi.js index d1f540b13..2b0fcbeb2 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -1,24 +1,122 @@ +import createDebug from 'debug' +import eventToPromise from 'event-to-promise' import find from 'lodash.find' import forEach from 'lodash.foreach' +import got from 'got' import map from 'lodash.map' import omit from 'lodash.omit' -import request from 'request' -import {Xapi as XapiBase} from 'xen-api' +import unzip from '@julien-f/unzip' +import {PassThrough} from 'stream' import {promisify} from 'bluebird' +import {Xapi as XapiBase} from 'xen-api' import {parseXml} from './utils' import {JsonRpcError} from './api-errors' + // =================================================================== -const requestPromise = promisify(request) +const debug = createDebug('xo:xapi') + +const gotPromise = promisify(got) + +const pFinally = (promise, cb) => { + return promise.then( + (value) => constructor.resolve(cb()).then(() => value), + (reason) => constructor.resolve(cb()).then(() => { + throw reason + }) + ) +} + +const wrapError = error => { + const e = new Error(error[0]) + e.code = error[0] + e.params = error.slice(1) + return e +} // =================================================================== export default class Xapi extends XapiBase { + constructor (...args) { + super(...args) + + this._taskWatchers = Object.create(null) + + // TODO: This is necessary to get UUIDs for host.patches. + // + // It will no longer be useful when using xen-api >= 0.5. + this._refsToUuids = Object.create(null) + + const onAddOrUpdate = objects => { + forEach(objects, object => { + const { + $ref: ref, + uuid + } = object + + if (ref && uuid) { + this._refsToUuids[ref] = uuid + } + + // Watched task + if (ref in this._taskWatchers) { + const {status} = object + + if (status === 'success') { + this._taskWatchers[ref].resolve(object.result) + } else if (status === 'failure') { + this._taskWatchers[ref].reject(wrapError(object.error_info)) + } else { + return + } + + delete this._taskWatchers[ref] + } + }) + } + this.objects.on('add', onAddOrUpdate) + this.objects.on('update', onAddOrUpdate) + } + + // ================================================================= + + async _createTask (name, description = '') { + const ref = await this.call('task.create', name, description) + + pFinally(this._watchTask(ref), () => { + this.call('task.destroy', ref) + }) + + return ref + } + + _watchTask (ref) { + let watcher = this._taskWatchers[ref] + if (!watcher) { + let resolve, reject + const promise = new Promise((resolve_, reject_) => { + resolve = resolve_ + reject = reject_ + }) + + // Register the watcher. + watcher = this._taskWatchers[ref] = { + promise, + resolve, + reject + } + } + + return watcher.promise + } + + // ================================================================= + // TODO: memoize async _listAvailableHostPatches (version) { - const [{statusCode}, body] = await requestPromise( + const [body, {statusCode}] = await gotPromise( 'http://updates.xensource.com/XenServer/updates.xml' ) @@ -36,7 +134,6 @@ export default class Xapi extends XapiBase { forEach(uuids, ({uuid}) => { const patch = find(data.patchdata.patches.patch, {uuid}) patches[uuid] = { - id: patch.uuid, date: patch.timestamp, description: patch['name-description'], documentationUrl: patch.url, @@ -54,7 +151,64 @@ export default class Xapi extends XapiBase { async listMissingHostPatches (host) { return omit( await this._listAvailableHostPatches(host.version), - host.patches + + // TODO: simplify when we start to use xen-api >= 0.5 + map(host.patches, ref => { + const hostPatch = this.objects.all[this._refsToUuids[ref]] + return this._refsToUuids[hostPatch.pool_patch] + }) ) } + + // ================================================================= + + async _installHostPatch (host, stream, length) { + const taskRef = await this._createTask('Patch upload from XO') + + got.put('http://' + host.address + '/pool_patch_upload', { + body: stream, + query: { + session_id: this.sessionId, + task_id: taskRef + }, + headers: { + 'content-length': length + } + }) + + await this._watchTask(taskRef).then( + (patchRef) => { + debug('patch upload succeeded') + + return this.call('pool_patch.apply', patchRef, host.ref) + }, + (error) => { + debug('patch upload failed', error.stack || error) + + throw error + } + ) + } + + async installHostPatchFromUrl (host, patchUrl) { + const PATCH_RE = /\.xsupdate$/ + const proxy = new PassThrough() + got(patchUrl).on('error', error => { + // TODO: better error handling + console.error(error) + }).pipe(unzip.Parse()).on('entry', entry => { + if (PATCH_RE.test(entry.path)) { + proxy.emit('length', entry.size) + entry.pipe(proxy) + } else { + entry.autodrain() + } + }).on('error', error => { + // TODO: better error handling + console.error(error) + }) + + const length = await eventToPromise(proxy, 'length') + return this._installHostPatch(host, proxy, length) + } } From ae437be6e76874096e3ba871b6b5ce0bda128c7d Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 5 May 2015 18:41:47 +0200 Subject: [PATCH 024/140] Memoize Xapi#listMissingHostPatches() --- gulpfile.js | 1 + src/xapi.js | 56 +++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/gulpfile.js b/gulpfile.js index 4bdb12d64..efe0b6049 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -54,6 +54,7 @@ gulp.task(function buildEs6 () { comments: false, optional: [ 'es7.asyncFunctions', + 'es7.decorators', 'runtime' ] })) diff --git a/src/xapi.js b/src/xapi.js index 2b0fcbeb2..417c4864c 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -10,8 +10,9 @@ import {PassThrough} from 'stream' import {promisify} from 'bluebird' import {Xapi as XapiBase} from 'xen-api' -import {parseXml} from './utils' +import {debounce} from './decorators' import {JsonRpcError} from './api-errors' +import {parseXml} from './utils' // =================================================================== @@ -114,8 +115,8 @@ export default class Xapi extends XapiBase { // ================================================================= - // TODO: memoize - async _listAvailableHostPatches (version) { + @debounce(24 * 60 * 60 * 1000) + async _getXenUpdates () { const [body, {statusCode}] = await gotPromise( 'http://updates.xensource.com/XenServer/updates.xml' ) @@ -124,16 +125,11 @@ export default class Xapi extends XapiBase { throw new JsonRpcError('cannot fetch patches list from Citrix') } - const data = parseXml(body) - const {patch: uuids} = find( - data.patchdata.serverversions.version, - { value: version } - ) + const {patchdata: data} = parseXml(body) - const patches = {} - forEach(uuids, ({uuid}) => { - const patch = find(data.patchdata.patches.patch, {uuid}) - patches[uuid] = { + const patches = Object.create(null) + forEach(data.patches.patch, patch => { + patches[patch.uuid] = { date: patch.timestamp, description: patch['name-description'], documentationUrl: patch.url, @@ -145,12 +141,44 @@ export default class Xapi extends XapiBase { // version: patch.version, } }) - return patches + + const resolveVersionPatches = function (uuids) { + const versionPatches = Object.create(null) + + forEach(uuids, ({uuid}) => { + versionPatches[uuid] = patches[uuid] + }) + + return versionPatches + } + + const versions = Object.create(null) + let latestVersion + forEach(data.serverversions.version, version => { + versions[version.value] = { + date: version.timestamp, + name: version.name, + id: version.value, + documentationUrl: version.url, + patches: resolveVersionPatches(version.patch) + } + + if (version.latest) { + latestVersion = versions[version.value] + } + }) + + return { + latestVersion, + versions + } } + // ================================================================= + async listMissingHostPatches (host) { return omit( - await this._listAvailableHostPatches(host.version), + (await this._getXenUpdates()).versions[host.version].patches, // TODO: simplify when we start to use xen-api >= 0.5 map(host.patches, ref => { From 95a8ced558710f0b87a5dc09fe30c1c96912daf4 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 5 May 2015 18:42:02 +0200 Subject: [PATCH 025/140] Modularize. --- src/decorators.js | 26 ++++++++++++++++++++++++++ src/utils.js | 12 ++++++++++++ src/xapi.js | 12 +----------- 3 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 src/decorators.js diff --git a/src/decorators.js b/src/decorators.js new file mode 100644 index 000000000..a1f06e977 --- /dev/null +++ b/src/decorators.js @@ -0,0 +1,26 @@ +// Debounce decorator for methods. +// +// See: https://github.com/wycats/javascript-decorators +export const debounce = (duration) => (target, name, descriptor) => { + const {value: fn} = descriptor + + let wrapper + let lastCall = 0 + function debounced () { + const now = Date.now() + if (now > lastCall + duration) { + lastCall = now + try { + const result = fn.apply(this, arguments) + wrapper = () => result + } catch (error) { + wrapper = () => { throw error } + } + } + return wrapper() + } + debounced.reset = () => { lastCall = 0 } + + descriptor.value = debounced + return descriptor +} diff --git a/src/utils.js b/src/utils.js index 21846f340..9b467b5c4 100644 --- a/src/utils.js +++ b/src/utils.js @@ -10,6 +10,18 @@ import {randomBytes} from 'crypto' // =================================================================== +// Ponyfill for Promise.finally(cb) +export const pFinally = (promise, cb) => { + return promise.then( + (value) => constructor.resolve(cb()).then(() => value), + (reason) => constructor.resolve(cb()).then(() => { + throw reason + }) + ) +} + +// ------------------------------------------------------------------- + // Ensure the value is an array, wrap it if necessary. export const ensureArray = (value) => { if (value === undefined) { diff --git a/src/xapi.js b/src/xapi.js index 417c4864c..8b67a6981 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -14,22 +14,12 @@ import {debounce} from './decorators' import {JsonRpcError} from './api-errors' import {parseXml} from './utils' +const debug = createDebug('xo:xapi') // =================================================================== -const debug = createDebug('xo:xapi') - const gotPromise = promisify(got) -const pFinally = (promise, cb) => { - return promise.then( - (value) => constructor.resolve(cb()).then(() => value), - (reason) => constructor.resolve(cb()).then(() => { - throw reason - }) - ) -} - const wrapError = error => { const e = new Error(error[0]) e.code = error[0] From 67699372f2d3eada6dd62472b536f1d68e97657e Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Tue, 5 May 2015 18:44:29 +0200 Subject: [PATCH 026/140] add url parameter --- src/api/host.coffee | 1 + 1 file changed, 1 insertion(+) diff --git a/src/api/host.coffee b/src/api/host.coffee index 281af179b..bff893ca5 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -236,6 +236,7 @@ installPatchFromUrl = $coroutine ({host, url}) -> installPatchFromUrl.params = { host: { type: 'string' } + url: { type: 'string' } } installPatchFromUrl.resolve = { From 8592ead0e36467125f65561b33a6be1c3cfde624 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 5 May 2015 18:55:27 +0200 Subject: [PATCH 027/140] Missing import. --- src/utils.js | 23 +++++++++++------------ src/xapi.js | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/src/utils.js b/src/utils.js index 9b467b5c4..2fb3e42cb 100644 --- a/src/utils.js +++ b/src/utils.js @@ -10,18 +10,6 @@ import {randomBytes} from 'crypto' // =================================================================== -// Ponyfill for Promise.finally(cb) -export const pFinally = (promise, cb) => { - return promise.then( - (value) => constructor.resolve(cb()).then(() => value), - (reason) => constructor.resolve(cb()).then(() => { - throw reason - }) - ) -} - -// ------------------------------------------------------------------- - // Ensure the value is an array, wrap it if necessary. export const ensureArray = (value) => { if (value === undefined) { @@ -80,6 +68,17 @@ export const parseXml = (function () { // ------------------------------------------------------------------- +// Ponyfill for Promise.finally(cb) +export const pFinally = (promise, cb) => { + return promise.then( + (value) => constructor.resolve(cb()).then(() => value), + (reason) => constructor.resolve(cb()).then(() => { + throw reason + }) + ) +} + +// ------------------------------------------------------------------- export function parseSize (size) { let bytes = humanFormat.parse.raw(size, { scale: 'binary' }) if (bytes.unit && bytes.unit !== 'B') { diff --git a/src/xapi.js b/src/xapi.js index 8b67a6981..0ce3393f4 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -12,7 +12,7 @@ import {Xapi as XapiBase} from 'xen-api' import {debounce} from './decorators' import {JsonRpcError} from './api-errors' -import {parseXml} from './utils' +import {parseXml, pFinally} from './utils' const debug = createDebug('xo:xapi') From 53e94378aec90ed9c97c19659f3b3d81f4d46f36 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 5 May 2015 18:55:46 +0200 Subject: [PATCH 028/140] Correctly handle patch upload error. --- src/xapi.js | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/src/xapi.js b/src/xapi.js index 0ce3393f4..180890033 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -183,29 +183,31 @@ export default class Xapi extends XapiBase { async _installHostPatch (host, stream, length) { const taskRef = await this._createTask('Patch upload from XO') - got.put('http://' + host.address + '/pool_patch_upload', { - body: stream, - query: { - session_id: this.sessionId, - task_id: taskRef - }, - headers: { - 'content-length': length - } - }) + await Promise.all([ + gotPromise('http://' + host.address + '/pool_patch_upload', { + method: 'put', + body: stream, + query: { + session_id: this.sessionId, + task_id: taskRef + }, + headers: { + 'content-length': length + } + }), + this._watchTask(taskRef).then( + (patchRef) => { + debug('patch upload succeeded') - await this._watchTask(taskRef).then( - (patchRef) => { - debug('patch upload succeeded') + return this.call('pool_patch.apply', patchRef, host.ref) + }, + (error) => { + debug('patch upload failed', error.stack || error) - return this.call('pool_patch.apply', patchRef, host.ref) - }, - (error) => { - debug('patch upload failed', error.stack || error) - - throw error - } - ) + throw error + } + ) + ]) } async installHostPatchFromUrl (host, patchUrl) { From 8146bee846a6b4a951ce03a38a20ff740661ffa7 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 5 May 2015 19:00:18 +0200 Subject: [PATCH 029/140] Upload to pool master. --- src/xapi.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index 180890033..72e4686b7 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -183,8 +183,11 @@ export default class Xapi extends XapiBase { async _installHostPatch (host, stream, length) { const taskRef = await this._createTask('Patch upload from XO') + // TODO: Update when xen-api >= 0.5 + const poolMaster = this.objects.all[this._refsToUuids[this.pool.master]] + await Promise.all([ - gotPromise('http://' + host.address + '/pool_patch_upload', { + gotPromise('http://' + poolMaster.address + '/pool_patch_upload', { method: 'put', body: stream, query: { From ee81febc89910ea3bd5954e3ebf2b41bd400c604 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 10:54:10 +0200 Subject: [PATCH 030/140] Fix @debounce to work correctly with multiple instances. --- src/decorators.js | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/decorators.js b/src/decorators.js index a1f06e977..c8d910cb3 100644 --- a/src/decorators.js +++ b/src/decorators.js @@ -4,22 +4,29 @@ export const debounce = (duration) => (target, name, descriptor) => { const {value: fn} = descriptor - let wrapper - let lastCall = 0 + // This symbol is used to store the related data directly on the + // current object. + const s = Symbol() + function debounced () { + let data = this[s] || (this[s] = { + lastCall: 0, + wrapper: null + }) + const now = Date.now() - if (now > lastCall + duration) { - lastCall = now + if (now > data.lastCall + duration) { + data.lastCall = now try { const result = fn.apply(this, arguments) - wrapper = () => result + data.wrapper = () => result } catch (error) { - wrapper = () => { throw error } + data.wrapper = () => { throw error } } } - return wrapper() + return data.wrapper() } - debounced.reset = () => { lastCall = 0 } + debounced.reset = (obj) => { delete obj[s] } descriptor.value = debounced return descriptor From 7af3f7e8811c00de7c60faf3e1ea0a4476b680c3 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 10:54:28 +0200 Subject: [PATCH 031/140] Xapi#_getXenUpdates() should be static. --- src/xapi.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/xapi.js b/src/xapi.js index 72e4686b7..acc566bf4 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -105,6 +105,7 @@ export default class Xapi extends XapiBase { // ================================================================= + // FIXME: should be static @debounce(24 * 60 * 60 * 1000) async _getXenUpdates () { const [body, {statusCode}] = await gotPromise( From b9927cd48d2cee08b2b5971bae1e86cd8f050678 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 14:33:49 +0200 Subject: [PATCH 032/140] pool.installPatch() & host.installPatch(). --- src/api/host.coffee | 12 ++-- src/api/pool.coffee | 18 ++++- src/xapi.js | 167 ++++++++++++++++++++++++++++++++++++-------- 3 files changed, 162 insertions(+), 35 deletions(-) diff --git a/src/api/host.coffee b/src/api/host.coffee index bff893ca5..72ae4a970 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -231,16 +231,16 @@ exports.listMissingPatches = listMissingPatches #--------------------------------------------------------------------- -installPatchFromUrl = $coroutine ({host, url}) -> - return @getXAPI(host).installHostPatchFromUrl(host, url) +installPatch = $coroutine ({host, patch: patchUuid}) -> + return @getXAPI(host).installPoolPatchOnHost(patchUuid, host.id) -installPatchFromUrl.params = { +installPatch.params = { host: { type: 'string' } - url: { type: 'string' } + patch: { type: 'string' } } -installPatchFromUrl.resolve = { +installPatch.resolve = { host: ['host', 'host'] } -exports.installPatchFromUrl = installPatchFromUrl +exports.installPatch = installPatch diff --git a/src/api/pool.coffee b/src/api/pool.coffee index 97919e326..1d1476b24 100644 --- a/src/api/pool.coffee +++ b/src/api/pool.coffee @@ -41,7 +41,7 @@ exports.set = set # Upload a patch and apply it # If host is given, only apply to a host and not the whole pool -# FIXME +# FIXME: remove and implements uploadPatch instead patch = $coroutine ({pool, host}) -> xapi = @getXAPI pool @@ -91,3 +91,19 @@ patch.resolve = { } exports.patch = patch + +#--------------------------------------------------------------------- + +installPatch = $coroutine ({pool, patch: patchUuid}) -> + return @getXAPI(pool).installPoolPatchOnAllHosts(patchUuid) + +installPatch.params = { + pool: { type: 'string' } + patch: { type: 'string' } +} + +installPatch.resolve = { + pool: ['pool', 'pool'] +} + +exports.installPatch = installPatch diff --git a/src/xapi.js b/src/xapi.js index acc566bf4..5652f8160 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -33,7 +33,8 @@ export default class Xapi extends XapiBase { constructor (...args) { super(...args) - this._taskWatchers = Object.create(null) + const objectsWatchers = this._objectWatchers = Object.create(null) + const taskWatchers = this._taskWatchers = Object.create(null) // TODO: This is necessary to get UUIDs for host.patches. // @@ -43,6 +44,7 @@ export default class Xapi extends XapiBase { const onAddOrUpdate = objects => { forEach(objects, object => { const { + $id: id, $ref: ref, uuid } = object @@ -51,19 +53,29 @@ export default class Xapi extends XapiBase { this._refsToUuids[ref] = uuid } - // Watched task - if (ref in this._taskWatchers) { + // Watched object. + if (id in objectsWatchers) { + objectsWatchers[id].resolve(object) + delete objectsWatchers[id] + } + if (ref in objectsWatchers) { + objectsWatchers[ref].resolve(object) + delete objectsWatchers[ref] + } + + // Watched task. + if (ref in taskWatchers) { const {status} = object if (status === 'success') { - this._taskWatchers[ref].resolve(object.result) + taskWatchers[ref].resolve(object.result) } else if (status === 'failure') { - this._taskWatchers[ref].reject(wrapError(object.error_info)) + taskWatchers[ref].reject(wrapError(object.error_info)) } else { return } - delete this._taskWatchers[ref] + delete taskWatchers[ref] } }) } @@ -71,8 +83,94 @@ export default class Xapi extends XapiBase { this.objects.on('update', onAddOrUpdate) } + // FIXME: remove this backported methods when xen-api >= 0.5 + getObject (idOrUuidOrRef, defaultValue) { + const {_objects: {all: objects}} = this + const object = ( + // if there is an UUID, it is also the $id. + objects[idOrUuidOrRef] || + objects[this._objectsByRefs[idOrUuidOrRef]] + ) + + if (object) return object + + if (arguments.length > 1) return defaultValue + + throw new Error('there is not object can be matched to ' + idOrUuidOrRef) + } + getObjectByRef (ref, defaultValue) { + const { + _refsToUuids: refsToUuids, + + // Objects ids are already UUIDs if they have one. + _objects: {all: objectsByUuids} + } = this + + if (ref in refsToUuids) { + return objectsByUuids[refsToUuids[ref]] + } + + if (arguments.length > 1) { + return defaultValue + } + + throw new Error('there is no object with the ref ' + ref) + } + getObjectByUuid (uuid, defaultValue) { + const { + // Objects ids are already UUIDs if they have one. + _objects: {all: objectsByUuids} + } = this + + if (uuid in objectsByUuids) { + return objectsByUuids[uuid] + } + + if (arguments.length > 1) { + return defaultValue + } + + throw new Error('there is no object with the UUID ' + uuid) + } + // ================================================================= + // Wait for an object to appear or to be updated. + // + // TODO: implements a timeout. + _waitObject (idOrUuidOrRef) { + let watcher = this._objectWatchers[idOrUuidOrRef] + if (!watcher) { + let resolve, reject + const promise = new Promise((resolve_, reject_) => { + resolve = resolve_ + reject = reject_ + }) + + // Register the watcher. + watcher = this._objectWatchers[idOrUuidOrRef] = { + promise, + resolve, + reject + } + } + + return watcher.promise + } + + // Returns the objects if already presents or waits for it. + async _getOrWaitObject (idOrUuidOrRef) { + return ( + this.getObject(idOrUuidOrRef, undefined) || + this._waitObject(idOrUuidOrRef) + ) + } + + // ================================================================= + + // Create a task. + // + // Returns the task object from the Xapi. async _createTask (name, description = '') { const ref = await this.call('task.create', name, description) @@ -80,10 +178,11 @@ export default class Xapi extends XapiBase { this.call('task.destroy', ref) }) - return ref + return this._getOrWaitObject(ref) } - _watchTask (ref) { + // Waits for a task to be resolved. + _watchTask ({ref}) { let watcher = this._taskWatchers[ref] if (!watcher) { let resolve, reject @@ -160,6 +259,7 @@ export default class Xapi extends XapiBase { }) return { + patches, latestVersion, versions } @@ -179,10 +279,10 @@ export default class Xapi extends XapiBase { ) } - // ================================================================= + // ----------------------------------------------------------------- - async _installHostPatch (host, stream, length) { - const taskRef = await this._createTask('Patch upload from XO') + async _uploadPoolPatch (stream, length) { + const task = await this._createTask('Patch upload from XO') // TODO: Update when xen-api >= 0.5 const poolMaster = this.objects.all[this._refsToUuids[this.pool.master]] @@ -193,31 +293,26 @@ export default class Xapi extends XapiBase { body: stream, query: { session_id: this.sessionId, - task_id: taskRef + task_id: task.$ref }, headers: { 'content-length': length } }), - this._watchTask(taskRef).then( - (patchRef) => { - debug('patch upload succeeded') - - return this.call('pool_patch.apply', patchRef, host.ref) - }, - (error) => { - debug('patch upload failed', error.stack || error) - - throw error - } - ) - ]) + this._watchTask(task) + ]).then(([, patchRef]) => this._waitObject(patchRef)) } - async installHostPatchFromUrl (host, patchUrl) { + async _getOrUploadPoolPatch (uuid) { + try { + return this.getObjectByUuid(uuid) + } catch (error) {} + + const patchInfo = (await this._getXenUpdates()).patches[uuid] + const PATCH_RE = /\.xsupdate$/ const proxy = new PassThrough() - got(patchUrl).on('error', error => { + got(patchInfo.url).on('error', error => { // TODO: better error handling console.error(error) }).pipe(unzip.Parse()).on('entry', entry => { @@ -233,6 +328,22 @@ export default class Xapi extends XapiBase { }) const length = await eventToPromise(proxy, 'length') - return this._installHostPatch(host, proxy, length) + return this._uploadPoolPatch(host, proxy, length) } + + async installPoolPatchOnHost (patchUuid, hostId) { + const patch = await this._getOrUploadPoolPatch(patchUuid) + const host = this.getObject(hostId) + + await this.call('pool_patch.apply', patch.$ref, host.$ref) + } + + async installPoolPatchOnAllHosts (patchUuid) { + const patch = await this._getOrUploadPoolPatch(patchUuid) + + await this.call('pool_patch.pool_apply', patch.$ref) + } + + // ================================================================= + } From a4bb2aaf12b034a3d7ca9971673dd2e3c013510e Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 15:01:26 +0200 Subject: [PATCH 033/140] Missing file. --- src/api/token.js | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 src/api/token.js diff --git a/src/api/token.js b/src/api/token.js new file mode 100644 index 000000000..025c63cf8 --- /dev/null +++ b/src/api/token.js @@ -0,0 +1,34 @@ +import {NoSuchObject, Unauthorized} from '../api-errors' + +// =================================================================== + +// TODO: Token permission. +export async function create () { + // The user MUST not be signed with a token + if (this.session.has('token_id')) { + throw new Unauthorized() + } + + const userId = this.session.get('user_id') + return (await this.createAuthenticationToken({userId})).id +} + +create.description = 'create a new authentication token' + +create.permission = '' // sign in + +// ------------------------------------------------------------------- + +async function delete_ ({token: id}) { + await this.deleteAuthenticationToken(id) +} + +export {delete_ as delete} + +delete_.description = 'delete an existing authentication token' + +delete_.permission = 'admin' + +delete_.params = { + token: { type: 'string' } +} From 8503350bfd3c1a08e09f7d93516f6898fba278c9 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 15:01:59 +0200 Subject: [PATCH 034/140] Missing dep (xo-collection). --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 1a0168016..67a0186d2 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,8 @@ "then-redis": "~1.3.0", "ws": "~0.7.1", "xen-api": "^0.3.0", - "xml2js": "~0.4.6" + "xml2js": "~0.4.6", + "xo-collection": "^0.2.0" }, "devDependencies": { "chai": "~2.1.2", From 33334830cc9a96961cc11d9cd9a6b2a038071920 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 15:33:09 +0200 Subject: [PATCH 035/140] Various fixes. --- package.json | 2 +- src/xo.js | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 67a0186d2..a848b5e70 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,6 @@ "lodash.filter": "^3.1.0", "lodash.find": "^3.0.0", "lodash.findindex": "^3.0.0", - "lodash.findlast": "^3.2.0", "lodash.foreach": "^3.0.1", "lodash.has": "^3.0.0", "lodash.includes": "^3.1.1", @@ -64,6 +63,7 @@ "lodash.isstring": "^3.0.0", "lodash.keys": "^3.0.4", "lodash.map": "^3.0.0", + "lodash.omit": "^3.1.0", "lodash.pick": "^3.0.0", "lodash.pluck": "^3.0.2", "lodash.result": "^3.0.0", diff --git a/src/xo.js b/src/xo.js index 6dc968cea..c5248cad3 100644 --- a/src/xo.js +++ b/src/xo.js @@ -5,17 +5,20 @@ import isEmpty from 'lodash.isempty' import isString from 'lodash.isstring' import pluck from 'lodash.pluck' import proxyRequest from 'proxy-http-request' +// import XoCollection from 'xo-collection' +// import XoView from 'xo-collection/view' import {createClient as createRedisClient} from 'then-redis' import {EventEmitter} from 'events' import {parse as parseUrl} from 'url' import Connection from './connection' import spec from './spec' -import Xapi from './xapi' import User, {Users} from './models/user' +import Xapi from './xapi' import {$MappedCollection as MappedCollection} from './MappedCollection' import {Acls} from './models/acl' import {generateToken} from './utils' +import {NoSuchObject} from './api-errors' import {Servers} from './models/server' import {Tokens} from './models/token' @@ -57,7 +60,7 @@ export default class Xo extends EventEmitter { constructor () { super() - this._objects = new XoCollection() + // this._objects = new XoCollection() // These will be initialized in start() // From 898244d04d059b435f101b336dfad1314f48069c Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Wed, 6 May 2015 15:34:57 +0200 Subject: [PATCH 036/140] link pool_patches to a pool --- src/spec.coffee | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/spec.coffee b/src/spec.coffee index 8b159ac0d..443eb01b5 100644 --- a/src/spec.coffee +++ b/src/spec.coffee @@ -331,6 +331,11 @@ module.exports = -> rule: 'VM' bind: -> @genval.$pool.$ref } + + patches: $set { + rule: 'pool_patch' + bind: -> @genval.$pool.$ref + } } #------------------------------------------------------------------- From f9dd00b79b6d40d14bad811f458fcb1205205c76 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 15:36:20 +0200 Subject: [PATCH 037/140] Do not XO & XAPI objects. --- src/api/host.coffee | 2 +- src/xapi.js | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/api/host.coffee b/src/api/host.coffee index 72ae4a970..53b5067c3 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -217,7 +217,7 @@ exports.createNetwork = createNetwork # Throws an error if the host is not running the latest XS version listMissingPatches = $coroutine ({host}) -> - return @getXAPI(host).listMissingHostPatches(host) + return @getXAPI(host).listMissingPoolPatchesOnHost(host.id) listMissingPatches.params = { host: { type: 'string' } diff --git a/src/xapi.js b/src/xapi.js index 5652f8160..9b8189adc 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -267,12 +267,17 @@ export default class Xapi extends XapiBase { // ================================================================= - async listMissingHostPatches (host) { + async listMissingPoolPatchesOnHost (hostId) { + const { + software_version: {product_version: version}, + patches + } = this.getObject(hostId) + console.log return omit( - (await this._getXenUpdates()).versions[host.version].patches, + (await this._getXenUpdates()).versions[version].patches, // TODO: simplify when we start to use xen-api >= 0.5 - map(host.patches, ref => { + map(patches, ref => { const hostPatch = this.objects.all[this._refsToUuids[ref]] return this._refsToUuids[hostPatch.pool_patch] }) From 5d2a41082a6305a29073054c0078164f1cd992c4 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 16:06:04 +0200 Subject: [PATCH 038/140] Fix server management due to f*** merge. --- src/api/server.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api/server.js b/src/api/server.js index 0fc8af573..e27362564 100644 --- a/src/api/server.js +++ b/src/api/server.js @@ -9,7 +9,7 @@ export async function add ({ password, autoConnect = true }) { - const server = await this.addXenServer({host, username, password}) + const server = await this.registerXenServer({host, username, password}) if (autoConnect) { // Connect asynchronously, ignore any error. @@ -42,7 +42,7 @@ add.params = { // ------------------------------------------------------------------- export async function remove ({id}) { - this.removeXenServer(id) + this.unregisterXenServer(id) } remove.description = 'unregister a Xen server' From a51452ee7c528a3bd0f09048368067976ed2227e Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 16:13:58 +0200 Subject: [PATCH 039/140] Remove unused var. --- src/xapi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index 9b8189adc..523bab988 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -333,7 +333,7 @@ export default class Xapi extends XapiBase { }) const length = await eventToPromise(proxy, 'length') - return this._uploadPoolPatch(host, proxy, length) + return this._uploadPoolPatch(proxy, length) } async installPoolPatchOnHost (patchUuid, hostId) { From 738d657c8ee416ec7c5b9a189551f02a05095ac6 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 16:19:17 +0200 Subject: [PATCH 040/140] Fix copy pasta -_-". --- src/xapi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index 523bab988..4072b43a0 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -89,7 +89,7 @@ export default class Xapi extends XapiBase { const object = ( // if there is an UUID, it is also the $id. objects[idOrUuidOrRef] || - objects[this._objectsByRefs[idOrUuidOrRef]] + objects[this._refsToUuids[idOrUuidOrRef]] ) if (object) return object From cfc42906b9fe476043258c7faa2487cf4e10fbf5 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 16:49:26 +0200 Subject: [PATCH 041/140] Add debug traces for patch install. --- src/xapi.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/xapi.js b/src/xapi.js index 4072b43a0..83b85f45a 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -313,6 +313,8 @@ export default class Xapi extends XapiBase { return this.getObjectByUuid(uuid) } catch (error) {} + debug('downloading patch', uuid) + const patchInfo = (await this._getXenUpdates()).patches[uuid] const PATCH_RE = /\.xsupdate$/ @@ -340,6 +342,8 @@ export default class Xapi extends XapiBase { const patch = await this._getOrUploadPoolPatch(patchUuid) const host = this.getObject(hostId) + debug('installing patch', patchUuid) + await this.call('pool_patch.apply', patch.$ref, host.$ref) } From 456adc5d0b09938aa6c70efd6077a8fd055e99d6 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 17:22:46 +0200 Subject: [PATCH 042/140] Add missing Error class. --- src/xo.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/xo.js b/src/xo.js index c5248cad3..3a2ff4440 100644 --- a/src/xo.js +++ b/src/xo.js @@ -42,6 +42,15 @@ class NoSuchUser extends NoSuchObject { } } +class NoSuchXenServer extends NoSuchObject { + constructor (id) { + super({ + type: 'xen server', + id + }) + } +} + // =================================================================== const PERSITENT_TYPES = { From a165884bcb55f8cc97f4beeb991e6843c128b7b7 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 17:23:17 +0200 Subject: [PATCH 043/140] Fix debug message. --- src/xapi.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/xapi.js b/src/xapi.js index 83b85f45a..d71f77c51 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -313,7 +313,7 @@ export default class Xapi extends XapiBase { return this.getObjectByUuid(uuid) } catch (error) {} - debug('downloading patch', uuid) + debug('downloading patch %s', uuid) const patchInfo = (await this._getXenUpdates()).patches[uuid] @@ -342,7 +342,7 @@ export default class Xapi extends XapiBase { const patch = await this._getOrUploadPoolPatch(patchUuid) const host = this.getObject(hostId) - debug('installing patch', patchUuid) + debug('installing patch %s', patchUuid) await this.call('pool_patch.apply', patch.$ref, host.$ref) } From 41baea780a828e9915b43217909e37dd7ad4e359 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 17:23:38 +0200 Subject: [PATCH 044/140] Xapi#_watchTask() unpack the ref if necessary. --- src/xapi.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index d71f77c51..4cb4540e2 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -182,7 +182,10 @@ export default class Xapi extends XapiBase { } // Waits for a task to be resolved. - _watchTask ({ref}) { + _watchTask (ref) { + // If a task object is passed, unpacked the ref. + if (typeof ref === 'object' && ref.$ref) ref = ref.$ref + let watcher = this._taskWatchers[ref] if (!watcher) { let resolve, reject From d85a4c9ad45dcfe02baf67cc23a584f42bba6879 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 17:37:31 +0200 Subject: [PATCH 045/140] Fix patch upload! --- src/xapi.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/xapi.js b/src/xapi.js index 4cb4540e2..91ab0d82e 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -173,9 +173,13 @@ export default class Xapi extends XapiBase { // Returns the task object from the Xapi. async _createTask (name, description = '') { const ref = await this.call('task.create', name, description) + debug('task created: %s', name) + pFinally(this._watchTask(ref), () => { - this.call('task.destroy', ref) + this.call('task.destroy', ref).then(() => { + debug('task destroyed: %s', name) + }) }) return this._getOrWaitObject(ref) @@ -295,7 +299,7 @@ export default class Xapi extends XapiBase { // TODO: Update when xen-api >= 0.5 const poolMaster = this.objects.all[this._refsToUuids[this.pool.master]] - await Promise.all([ + const [, patchRef] = await Promise.all([ gotPromise('http://' + poolMaster.address + '/pool_patch_upload', { method: 'put', body: stream, @@ -308,7 +312,9 @@ export default class Xapi extends XapiBase { } }), this._watchTask(task) - ]).then(([, patchRef]) => this._waitObject(patchRef)) + ]) + + return this._getOrWaitObject(patchRef) } async _getOrUploadPoolPatch (uuid) { From adbbb15a9247a559c30ccb40e8b4c7d7eb7a6429 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 17:53:20 +0200 Subject: [PATCH 046/140] Fix possibly long standing bug in Api#call(). --- src/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api.js b/src/api.js index 87a4b24fc..7e4f99810 100644 --- a/src/api.js +++ b/src/api.js @@ -295,7 +295,7 @@ export default class Api { await resolveParams.call(context, method, params) try { - let result = method.call(context, params) + let result = await method.call(context, params) // If nothing was returned, consider this operation a success // and return true. From 99461a70e6b36afdb3027541275325cb4a6d92a4 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 6 May 2015 17:53:36 +0200 Subject: [PATCH 047/140] Remove useless $coroutine. --- src/api/host.coffee | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api/host.coffee b/src/api/host.coffee index 53b5067c3..f8f387b57 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -216,7 +216,7 @@ exports.createNetwork = createNetwork # Returns an empty array if up-to-date # Throws an error if the host is not running the latest XS version -listMissingPatches = $coroutine ({host}) -> +listMissingPatches = ({host}) -> return @getXAPI(host).listMissingPoolPatchesOnHost(host.id) listMissingPatches.params = { @@ -231,7 +231,7 @@ exports.listMissingPatches = listMissingPatches #--------------------------------------------------------------------- -installPatch = $coroutine ({host, patch: patchUuid}) -> +installPatch = ({host, patch: patchUuid}) -> return @getXAPI(host).installPoolPatchOnHost(patchUuid, host.id) installPatch.params = { From f986487df9ab956e275ac035bc4cebd2edb9bfe7 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Thu, 7 May 2015 19:42:34 +0200 Subject: [PATCH 048/140] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 7ffc680d0..d40015997 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Xen Orchestra Server +![](http://i.imgur.com/HVFMrTk.png) + XO-Server is part of [Xen Orchestra](https://github.com/vatesfr/xo), a web interface for XenServer or XAPI enabled hosts. It contains all the logic of XO and handles: From 9bddec2dfd550bc035b097ca3c1aaf7c7d2019a9 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Fri, 8 May 2015 15:37:30 +0200 Subject: [PATCH 049/140] first Docker attempt --- src/api/vm.coffee | 10 +++++----- src/spec.coffee | 10 ++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index c991a0b6c..321a6603f 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -1108,7 +1108,7 @@ exports.stats = stats; # Actions on a Docker container in a VM # Can be: start, stop, pause, unpause, restart -dockerContainerAction = $coroutine ({host, vm, container, action}) -> +dockerAction = $coroutine ({vm, container, action}) -> xapi = @getXAPI vm host = @getObject vm.$container args = { @@ -1118,14 +1118,14 @@ dockerContainerAction = $coroutine ({host, vm, container, action}) -> console.log args return $wait xapi.call 'host.call_plugin', host.ref, 'xscontainer', action, args -dockerContainerAction.params = { +dockerAction.params = { vm: { type: 'string' } container: { type: 'string' } action: { type: 'string' } } -dockerContainerAction.resolve = { +dockerAction.resolve = { vm: ['vm', 'VM'], } -dockerContainerAction.permission = 'admin' -exports.dockerContainerAction = dockerContainerAction +dockerAction.permission = 'admin' +exports.dockerAction = dockerAction diff --git a/src/spec.coffee b/src/spec.coffee index 443eb01b5..b3852a8d6 100644 --- a/src/spec.coffee +++ b/src/spec.coffee @@ -474,6 +474,16 @@ module.exports = -> current_operations: -> @genval.current_operations + docker: -> + if @genval.other_config.docker_info + docker = { + enabled: @genval.other_config.xscontainer_monitor + process: ($parseXML @genval.other_config.docker_ps).docker_ps + info: ($parseXML @genval.other_config.docker_info).docker_info + version: ($parseXML @genval.other_config.docker_version).docker_version + } + else false + # TODO: there is two possible value: "best-effort" and "restart" high_availability: -> if @genval.ha_restart_priority From 528529c0d11040a4bbbca6dbb64f4068b9934029 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 8 May 2015 15:51:53 +0200 Subject: [PATCH 050/140] docker.*() methods. --- src/api/docker.js | 32 ++++++++++++++++++++++++++++++++ src/api/vm.coffee | 26 -------------------------- src/xapi.js | 32 ++++++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 26 deletions(-) create mode 100644 src/api/docker.js diff --git a/src/api/docker.js b/src/api/docker.js new file mode 100644 index 000000000..57d254c6d --- /dev/null +++ b/src/api/docker.js @@ -0,0 +1,32 @@ +export default async function start ({vm, container}) { + await this.getXAPI(vm).startDockerContainer(vm.$id, container) +} + +export default async function stop ({vm, container}) { + await this.getXAPI(vm).stopDockerContainer(vm.$id, container) +} + +export default async function restart ({vm, container}) { + await this.getXAPI(vm).restartDockerContainer(vm.$id, container) +} + +export default async function pause ({vm, container}) { + await this.getXAPI(vm).pauseDockerContainer(vm.$id, container) +} + +export default async function unpause ({vm, container}) { + await this.getXAPI(vm).unpauseDockerContainer(vm.$id, container) +} + +for (let fn of [start, stop, restart, pause, unpause]) { + fn.permission = 'admin' + + fn.params = { + vm: { type: 'string' }, + container: { type: 'string' } + } + + fn.resolve = { + vm: ['vm', 'VM'] + } +} diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 321a6603f..5780904c7 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -1103,29 +1103,3 @@ stats.resolve = { } exports.stats = stats; - -#--------------------------------------------------------------------- -# Actions on a Docker container in a VM -# Can be: start, stop, pause, unpause, restart - -dockerAction = $coroutine ({vm, container, action}) -> - xapi = @getXAPI vm - host = @getObject vm.$container - args = { - vmuuid: vm.UUID, - container: container, - } - console.log args - return $wait xapi.call 'host.call_plugin', host.ref, 'xscontainer', action, args - -dockerAction.params = { - vm: { type: 'string' } - container: { type: 'string' } - action: { type: 'string' } -} - -dockerAction.resolve = { - vm: ['vm', 'VM'], -} -dockerAction.permission = 'admin' -exports.dockerAction = dockerAction diff --git a/src/xapi.js b/src/xapi.js index 91ab0d82e..f723f0e52 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -364,4 +364,36 @@ export default class Xapi extends XapiBase { // ================================================================= + async _doDockerAction (vmId, containerId, action) { + const vm = this.getObject(vmId) + const host = this.getObject(vm.resident_on) + + return await this.call('host.call_plugin', host.$ref, 'xscontainer', action, { + vmuuid: vm.uuid, + container: containerId + }) + } + + async startDockerContainer (vmId, containerId) { + await this._doDockerAction(vmId, containerId, 'start') + } + + async stopDockerContainer (vmId, containerId) { + await this._doDockerAction(vmId, containerId, 'stop') + } + + async restartDockerContainer (vmId, containerId) { + await this._doDockerAction(vmId, containerId, 'restart') + } + + async pauseDockerContainer (vmId, containerId) { + await this._doDockerAction(vmId, containerId, 'pause') + } + + async unpauseDockerContainer (vmId, containerId) { + await this._doDockerAction(vmId, containerId, 'unpause') + } + + // ================================================================= + } From 2e9870014f73772868a24d786ce35af04a3fc761 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 8 May 2015 16:02:46 +0200 Subject: [PATCH 051/140] Fix docker.*() functions export. --- src/api/docker.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/api/docker.js b/src/api/docker.js index 57d254c6d..807d5f80e 100644 --- a/src/api/docker.js +++ b/src/api/docker.js @@ -1,20 +1,20 @@ -export default async function start ({vm, container}) { +export async function start ({vm, container}) { await this.getXAPI(vm).startDockerContainer(vm.$id, container) } -export default async function stop ({vm, container}) { +export async function stop ({vm, container}) { await this.getXAPI(vm).stopDockerContainer(vm.$id, container) } -export default async function restart ({vm, container}) { +export async function restart ({vm, container}) { await this.getXAPI(vm).restartDockerContainer(vm.$id, container) } -export default async function pause ({vm, container}) { +export async function pause ({vm, container}) { await this.getXAPI(vm).pauseDockerContainer(vm.$id, container) } -export default async function unpause ({vm, container}) { +export async function unpause ({vm, container}) { await this.getXAPI(vm).unpauseDockerContainer(vm.$id, container) } From 89d485e1884774b03c4056e96d781dbf8d8bc137 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Fri, 8 May 2015 16:12:15 +0200 Subject: [PATCH 052/140] remove typo in id --- src/api/docker.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/api/docker.js b/src/api/docker.js index 807d5f80e..253b0db8f 100644 --- a/src/api/docker.js +++ b/src/api/docker.js @@ -1,21 +1,21 @@ export async function start ({vm, container}) { - await this.getXAPI(vm).startDockerContainer(vm.$id, container) + await this.getXAPI(vm).startDockerContainer(vm.id, container) } export async function stop ({vm, container}) { - await this.getXAPI(vm).stopDockerContainer(vm.$id, container) + await this.getXAPI(vm).stopDockerContainer(vm.id, container) } export async function restart ({vm, container}) { - await this.getXAPI(vm).restartDockerContainer(vm.$id, container) + await this.getXAPI(vm).restartDockerContainer(vm.id, container) } export async function pause ({vm, container}) { - await this.getXAPI(vm).pauseDockerContainer(vm.$id, container) + await this.getXAPI(vm).pauseDockerContainer(vm.id, container) } export async function unpause ({vm, container}) { - await this.getXAPI(vm).unpauseDockerContainer(vm.$id, container) + await this.getXAPI(vm).unpauseDockerContainer(vm.id, container) } for (let fn of [start, stop, restart, pause, unpause]) { From 873e2aed94dd1a70fc3366a0ce1e6b6afd6eccb3 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Fri, 8 May 2015 19:03:25 +0200 Subject: [PATCH 053/140] enable/disable docker and more robust spec with XML parsing for docker stuff --- src/api/vm.coffee | 42 +++++++++++++++++++++++++++++++++++++++++- src/spec.coffee | 28 +++++++++++++++++++++------- 2 files changed, 62 insertions(+), 8 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 5780904c7..7ffe2c336 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -1006,7 +1006,6 @@ detachPci.resolve = { } detachPci.permission = 'admin' exports.detachPci = detachPci - #--------------------------------------------------------------------- @@ -1103,3 +1102,44 @@ stats.resolve = { } exports.stats = stats; + +#--------------------------------------------------------------------- + +enableDocker = $coroutine ({vm}) -> + xapi = @getXAPI vm + + $wait xapi.call 'VM.remove_from_other_config', vm.ref, 'xscontainer-monitor' + $wait xapi.call 'VM.add_to_other_config', vm.ref, 'xscontainer-monitor', 'True' + + return true + + +enableDocker.params = { + vm: { type: 'string' } +} + +enableDocker.resolve = { + vm: ['vm', 'VM'], +} +enableDocker.permission = 'admin' +exports.enableDocker = enableDocker +#--------------------------------------------------------------------- + +disableDocker = $coroutine ({vm}) -> + xapi = @getXAPI vm + + $wait xapi.call 'VM.remove_from_other_config', vm.ref, 'xscontainer-monitor' + $wait xapi.call 'VM.add_to_other_config', vm.ref, 'xscontainer-monitor', 'False' + + return true + + +disableDocker.params = { + vm: { type: 'string' } +} + +disableDocker.resolve = { + vm: ['vm', 'VM'], +} +disableDocker.permission = 'admin' +exports.disableDocker = disableDocker diff --git a/src/spec.coffee b/src/spec.coffee index b3852a8d6..47bbc7b94 100644 --- a/src/spec.coffee +++ b/src/spec.coffee @@ -475,14 +475,28 @@ module.exports = -> current_operations: -> @genval.current_operations docker: -> - if @genval.other_config.docker_info - docker = { - enabled: @genval.other_config.xscontainer_monitor - process: ($parseXML @genval.other_config.docker_ps).docker_ps - info: ($parseXML @genval.other_config.docker_info).docker_info - version: ($parseXML @genval.other_config.docker_version).docker_version + monitor = @genval.other_config['xscontainer-monitor'] + return if not monitor? + + if monitor is 'False' + return { + enabled: false } - else false + + if @genval.power_state is 'Running' + if @genval.other_config.docker_ps && @genval.other_config.docker_info && @genval.other_config.docker_version + process = ($parseXML @genval.other_config.docker_ps).docker_ps + info = ($parseXML @genval.other_config.docker_info).docker_info + version = ($parseXML @genval.other_config.docker_version).docker_version + + return { + enabled: true + process: process + info: info + version: version + } + + return { enabled: true} # TODO: there is two possible value: "best-effort" and "restart" high_availability: -> From 4f4d0bf6aa43503184817a83a666db2f05bf1953 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Sat, 9 May 2015 00:26:14 +0200 Subject: [PATCH 054/140] work in progress. Find where (un)register raise UNKNOWN_XENAPI_PLUGIN_FUNCTION. Because it shouldn't. --- src/api/docker.js | 32 ++++++++++++++++++++++++++++++++ src/xapi.js | 20 ++++++++++++++++---- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/src/api/docker.js b/src/api/docker.js index 253b0db8f..3c8d404f0 100644 --- a/src/api/docker.js +++ b/src/api/docker.js @@ -1,3 +1,35 @@ +export async function register ({vm}) { + await this.getXAPI(vm).registerDockerContainer(vm.id) +} +register.permission = 'admin' + +register.description = 'Register the VM for Docker management' + +register.params = { + vm: { type: 'string' }, +} + +register.resolve = { + vm: ['vm', 'VM'] +} + +//------------------------------------------------------------------------------ +export async function unregister ({vm}) { + await this.getXAPI(vm).unregisterDockerContainer(vm.id) +} +unregister.permission = 'admin' + +unregister.description = 'Unregister the VM for Docker management' + +unregister.params = { + vm: { type: 'string' }, +} + +unregister.resolve = { + vm: ['vm', 'VM'] +} + +//------------------------------------------------------------------------------ export async function start ({vm, container}) { await this.getXAPI(vm).startDockerContainer(vm.id, container) } diff --git a/src/xapi.js b/src/xapi.js index f723f0e52..7d53da8e7 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -368,10 +368,22 @@ export default class Xapi extends XapiBase { const vm = this.getObject(vmId) const host = this.getObject(vm.resident_on) - return await this.call('host.call_plugin', host.$ref, 'xscontainer', action, { - vmuuid: vm.uuid, - container: containerId - }) + let params = { + vmuuid: vm.uuid + } + + if (containerId) { + params.container = containerId + } + return await this.call('host.call_plugin', host.$ref, 'xscontainer', action, params) + } + + async registerDockerContainer (vmId) { + await this._doDockerAction(vmId, 'register') + } + + async unregisterDockerContainer (vmId) { + await this._doDockerAction(vmId, 'unregister') } async startDockerContainer (vmId, containerId) { From 8fd65b73658cb1087486e37d836767204a70af52 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Sat, 9 May 2015 00:29:16 +0200 Subject: [PATCH 055/140] replace unregister by deregister --- src/api/docker.js | 10 +++++----- src/xapi.js | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/api/docker.js b/src/api/docker.js index 3c8d404f0..92fb7ce5d 100644 --- a/src/api/docker.js +++ b/src/api/docker.js @@ -14,18 +14,18 @@ register.resolve = { } //------------------------------------------------------------------------------ -export async function unregister ({vm}) { +export async function deregister ({vm}) { await this.getXAPI(vm).unregisterDockerContainer(vm.id) } -unregister.permission = 'admin' +deregister.permission = 'admin' -unregister.description = 'Unregister the VM for Docker management' +deregister.description = 'Deregister the VM for Docker management' -unregister.params = { +deregister.params = { vm: { type: 'string' }, } -unregister.resolve = { +deregister.resolve = { vm: ['vm', 'VM'] } diff --git a/src/xapi.js b/src/xapi.js index 7d53da8e7..09cb8c25b 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -382,8 +382,8 @@ export default class Xapi extends XapiBase { await this._doDockerAction(vmId, 'register') } - async unregisterDockerContainer (vmId) { - await this._doDockerAction(vmId, 'unregister') + async deregisterDockerContainer (vmId) { + await this._doDockerAction(vmId, 'deregister') } async startDockerContainer (vmId, containerId) { From a4f9b9208d13d412d2cd21cd4539f0601134480d Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Sat, 9 May 2015 11:43:21 +0200 Subject: [PATCH 056/140] fix registration --- src/xapi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index 09cb8c25b..55ffd8913 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -364,7 +364,7 @@ export default class Xapi extends XapiBase { // ================================================================= - async _doDockerAction (vmId, containerId, action) { + async _doDockerAction (vmId, action, containerId) { const vm = this.getObject(vmId) const host = this.getObject(vm.resident_on) From 74d4237913a0c41bf7f744c0d14401b2386dc4b0 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 May 2015 12:52:29 +0200 Subject: [PATCH 057/140] Fix docker methods. --- src/xapi.js | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/xapi.js b/src/xapi.js index 55ffd8913..d64969ed1 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -368,14 +368,10 @@ export default class Xapi extends XapiBase { const vm = this.getObject(vmId) const host = this.getObject(vm.resident_on) - let params = { - vmuuid: vm.uuid - } - - if (containerId) { - params.container = containerId - } - return await this.call('host.call_plugin', host.$ref, 'xscontainer', action, params) + return await this.call('host.call_plugin', host.$ref, 'xscontainer', action, { + vmuuid: vm.uuid, + container: containerId + }) } async registerDockerContainer (vmId) { @@ -387,23 +383,23 @@ export default class Xapi extends XapiBase { } async startDockerContainer (vmId, containerId) { - await this._doDockerAction(vmId, containerId, 'start') + await this._doDockerAction(vmId, 'start', containerId) } async stopDockerContainer (vmId, containerId) { - await this._doDockerAction(vmId, containerId, 'stop') + await this._doDockerAction(vmId, 'stop', containerId) } async restartDockerContainer (vmId, containerId) { - await this._doDockerAction(vmId, containerId, 'restart') + await this._doDockerAction(vmId, 'restart', containerId) } async pauseDockerContainer (vmId, containerId) { - await this._doDockerAction(vmId, containerId, 'pause') + await this._doDockerAction(vmId, 'pause', containerId) } async unpauseDockerContainer (vmId, containerId) { - await this._doDockerAction(vmId, containerId, 'unpause') + await this._doDockerAction(vmId, 'unpause', containerId) } // ================================================================= From 2ca18340c7e791f25a033cefc8e14555878f4e06 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 May 2015 14:07:16 +0200 Subject: [PATCH 058/140] Remove 2 unused imports. --- src/api-errors.js | 1 - src/helpers.spec.js | 1 - 2 files changed, 2 deletions(-) diff --git a/src/api-errors.js b/src/api-errors.js index 5bd0a1b18..8cead5c73 100644 --- a/src/api-errors.js +++ b/src/api-errors.js @@ -1,4 +1,3 @@ -import assign from 'lodash.assign' import {JsonRpcError} from '@julien-f/json-rpc/errors' // =================================================================== diff --git a/src/helpers.spec.js b/src/helpers.spec.js index 1e83950f2..363e8e8e7 100644 --- a/src/helpers.spec.js +++ b/src/helpers.spec.js @@ -1,7 +1,6 @@ /* eslint-env mocha */ import $bind from 'lodash.bind' -import $sinon from 'sinon' import {expect as $expect} from 'chai' import {$MappedCollection} from './MappedCollection' From 321bb299b18fbb6c0f32268a97667b750861209a Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 May 2015 17:03:58 +0200 Subject: [PATCH 059/140] Fix grammar in error message. --- src/xapi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index d64969ed1..857073d22 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -96,7 +96,7 @@ export default class Xapi extends XapiBase { if (arguments.length > 1) return defaultValue - throw new Error('there is not object can be matched to ' + idOrUuidOrRef) + throw new Error('no object can be matched to ' + idOrUuidOrRef) } getObjectByRef (ref, defaultValue) { const { From 6e151a9f8bab4ad38118ea3b0c7d58db0b20b20b Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 May 2015 17:08:38 +0200 Subject: [PATCH 060/140] Properties settings moved into xapi.js --- src/api/sr.js | 21 ++++++--------------- src/xapi.js | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/src/api/sr.js b/src/api/sr.js index 6ae65f3a1..664b76042 100644 --- a/src/api/sr.js +++ b/src/api/sr.js @@ -4,21 +4,12 @@ import {ensureArray, parseXml} from '../utils' // =================================================================== -export const set = coroutine(function (params) { - const {SR} = params - const xapi = this.getXAPI() +export async function set (params) { + const {sr} = params + delete params.sr - forEach(['name_label', 'name_description'], param => { - const value = params[param] - if (value === undefined) { - return - } - - wait(xapi.call(`SR.set_${value}`, SR.ref, params[param])) - }) - - return true -}) + await this.getXAPI(sr).setSrProperties(sr.id, params) +} set.params = { id: { type: 'string' }, @@ -29,7 +20,7 @@ set.params = { } set.resolve = { - SR: ['id', 'SR'] + sr: ['id', 'SR'] } // ------------------------------------------------------------------- diff --git a/src/xapi.js b/src/xapi.js index 857073d22..36b26f0e1 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -211,6 +211,40 @@ export default class Xapi extends XapiBase { // ================================================================= + async _setObjectProperties (type, id, props) { + const {$ref: ref} = this.getObject(id) + + // TODO: the thrown error should contain the name of the + // properties that failed to be set. + await Promise.all(map(props, (value, name) => { + if (value != null) { + return this.call(`${type}.set_${name}`, ref, value) + } + })) + } + + async setPoolProperties ({ + name_label, + name_description + }) { + await this._setObjectProperties('pool', this.pool.$id, { + name_label, + name_description + }) + } + + async setSrProperties (id, { + name_label, + name_description + }) { + await this._setObjectProperties('SR', id, { + name_label, + name_description + }) + } + + // ================================================================= + // FIXME: should be static @debounce(24 * 60 * 60 * 1000) async _getXenUpdates () { From 883a30c7ad3908aa4a33c33a68c254e1c8c4425e Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 May 2015 17:34:13 +0200 Subject: [PATCH 061/140] Patch upload reworked. --- src/api/pool.coffee | 109 -------------------------------------------- src/api/pool.js | 75 ++++++++++++++++++++++++++++++ src/index.js | 6 +-- src/xapi.js | 4 +- src/xo.js | 80 ++++++++++++++++++++++++++------ 5 files changed, 146 insertions(+), 128 deletions(-) delete mode 100644 src/api/pool.coffee create mode 100644 src/api/pool.js diff --git a/src/api/pool.coffee b/src/api/pool.coffee deleted file mode 100644 index 1d1476b24..000000000 --- a/src/api/pool.coffee +++ /dev/null @@ -1,109 +0,0 @@ -$debug = (require 'debug') 'xo:api:vm' -{$coroutine, $wait} = require '../fibers-utils' - -#===================================================================== - -set = $coroutine (params) -> - {pool} = params - xapi = @getXAPI pool - - for param, field of { - 'name_label' - 'name_description' - } - continue unless param of params - - $wait xapi.call "pool.set_#{field}", pool.ref, params[param] - - return true - -set.params = { - id: { - type: 'string', - }, - name_label: { - type: 'string', - optional: true, - }, - name_description: { - type: 'string', - optional: true, - }, -} - -set.resolve = { - pool: ['id', 'pool'], -} - -exports.set = set - -#--------------------------------------------------------------------- -# Upload a patch and apply it -# If host is given, only apply to a host and not the whole pool - -# FIXME: remove and implements uploadPatch instead -patch = $coroutine ({pool, host}) -> - xapi = @getXAPI pool - - taskRef = $wait xapi.call 'task.create', 'Patch upload from XO', '' - @watchTask taskRef - .then $coroutine (patchRef) -> - $debug 'Patch upload succeeded' - if not host - xapi.call 'pool_patch.pool_apply', patchRef - else - host = @getObject host - xapi.call 'pool_patch.apply', patchRef, host.ref - return - .catch (error) -> - $debug 'Patch upload failed: %j', error - return - .finally $coroutine -> - xapi.call 'task.destroy', taskRef - return - - if not host - host = @getObject pool.master, 'host' - - url = $wait @registerProxyRequest { - # Receive a POST but send a PUT. - method: 'put' - proxyMethod: 'post' - hostname: host.address - pathname: '/pool_patch_upload' - query: { - session_id: xapi.sessionId - task_id: taskRef - } - } - - return { - $sendTo: url - } - -patch.params = { - pool: { type: 'string' }, - host: { type: 'string', optional: true }, -} - -patch.resolve = { - pool: ['pool', 'pool'], -} - -exports.patch = patch - -#--------------------------------------------------------------------- - -installPatch = $coroutine ({pool, patch: patchUuid}) -> - return @getXAPI(pool).installPoolPatchOnAllHosts(patchUuid) - -installPatch.params = { - pool: { type: 'string' } - patch: { type: 'string' } -} - -installPatch.resolve = { - pool: ['pool', 'pool'] -} - -exports.installPatch = installPatch diff --git a/src/api/pool.js b/src/api/pool.js new file mode 100644 index 000000000..6ff9d0704 --- /dev/null +++ b/src/api/pool.js @@ -0,0 +1,75 @@ +// =================================================================== + +export async function set (params) { + const {pool} = params + delete params.pool + + await this.getXAPI(pool).setPoolProperties(params) +} + +set.params = { + id: { + type: 'string' + }, + name_label: { + type: 'string', + optional: true + }, + name_description: { + type: 'string', + optional: true + } +} + +set.resolve = { + pool: ['id', 'pool'] +} + +// ------------------------------------------------------------------- + +export async function installPatch ({pool, patch: patchUuid}) { + await this.getXAPI(pool).installPoolPatchOnAllHosts(patchUuid) +} + +installPatch.params = { + pool: { + type: 'string' + }, + patch: { + type: 'string' + } +} + +installPatch.resolve = { + pool: ['pool', 'pool'] +} + +// ------------------------------------------------------------------- + +async function handlePatchUpload (req, res, {pool}) { + const {headers: {['content-length']: contentLength}} = req + if (!contentLength) { + res.writeHead(400) + res.end('Content length is mandatory') + return + } + + await this.getXAPI(pool).uploadPoolPatch(req, contentLength) +} + +export async function uploadPatch ({pool}) { + return { + $sendTo: await this.registerHttpRequest(handlePatchUpload, {pool}) + } +} + +uploadPatch.params = { + pool: { type: 'string' } +} + +uploadPatch.resolve = { + pool: ['pool', 'pool'] +} + +// TODO: compatibility +export {uploadPatch as patch} diff --git a/src/index.js b/src/index.js index fbf1aeb18..f2bbe711f 100644 --- a/src/index.js +++ b/src/index.js @@ -31,7 +31,7 @@ import {readFile} from 'fs-promise' import Api from './api' import WebServer from 'http-server-plus' import wsProxy from './ws-proxy' -import XO from './xo' +import Xo from './xo' // =================================================================== @@ -370,7 +370,7 @@ export default async function main (args) { // Create the main object which will connects to Xen servers and // manages all the models. - const xo = new XO() + const xo = new Xo() await xo.start({ redis: { uri: config.redis && config.redis.uri @@ -393,7 +393,7 @@ export default async function main (args) { setUpConsoleProxy(webServer, xo) // Must be set up before the API. - connect.use(bind(xo.handleProxyRequest, xo)) + connect.use(bind(xo._handleProxyRequest, xo)) // Must be set up before the static files. setUpApi(webServer, xo) diff --git a/src/xapi.js b/src/xapi.js index 36b26f0e1..cea68e93f 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -327,7 +327,7 @@ export default class Xapi extends XapiBase { // ----------------------------------------------------------------- - async _uploadPoolPatch (stream, length) { + async uploadPoolPatch (stream, length) { const task = await this._createTask('Patch upload from XO') // TODO: Update when xen-api >= 0.5 @@ -378,7 +378,7 @@ export default class Xapi extends XapiBase { }) const length = await eventToPromise(proxy, 'length') - return this._uploadPoolPatch(proxy, length) + return this.uploadPoolPatch(proxy, length) } async installPoolPatchOnHost (patchUuid, hostId) { diff --git a/src/xo.js b/src/xo.js index 3a2ff4440..eb5ef7b92 100644 --- a/src/xo.js +++ b/src/xo.js @@ -422,28 +422,59 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- - async registerProxyRequest (opts) { - if (isString(opts)) { - opts = parseUrl(opts) - } else { - opts.method = opts.method != null ? - opts.method.toUpperCase() : - 'GET' + _handleHttpRequest (req, res, next) { + const {url} = req - opts.proxyMethod = opts.proxyMethod != null ? - opts.proxyMethod.toUpperCase() : - opts.method + const {_httpRequestWatchers: watchers} = this + const watcher = watchers[url] + if (!watcher) { + next() + return } + delete watchers[url] - opts.createdAt = Date.now() + const {fn, data} = watcher + Bluebird.try(watcher, [data]).then( + result => { + if (result != null) { + res.end(JSON.stringify(result)) + } + }, + error => { + console.error('HTTP request error', error) - const url = `/${await generateToken()} ` - this._proxyRequests[url] = opts + if (!res.headersSent) { + res.writeHead(500) + } + res.end('unknown error') + } + ) + } + + async registerHttpRequest (fn, data) { + const {_httpRequestWatchers: watchers} = this + + const url = await (function generateUniqueUrl () { + return generateToken().then(token => { + const url = `/api/${token}` + + return url in watchers ? + generateUrl() : + url + }) + })() + + watchers[url] = { + fn, + data + } return url } - handleProxyRequest (req, res, next) { + // ----------------------------------------------------------------- + + _handleProxyRequest (req, res, next) { const {url} = req const request = this._proxyRequests[url] if (!request || req.method !== request.proxyMethod) { @@ -482,6 +513,27 @@ export default class Xo extends EventEmitter { }) } + async registerProxyRequest (opts) { + if (isString(opts)) { + opts = parseUrl(opts) + } else { + opts.method = opts.method != null ? + opts.method.toUpperCase() : + 'GET' + + opts.proxyMethod = opts.proxyMethod != null ? + opts.proxyMethod.toUpperCase() : + opts.method + } + + opts.createdAt = Date.now() + + const url = `/${await generateToken()} ` + this._proxyRequests[url] = opts + + return url + } + // ----------------------------------------------------------------- watchTask (ref) { From 1f56e63f9c63743df946dfc3bd5dde4a3d75ed0e Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 May 2015 18:24:52 +0200 Subject: [PATCH 062/140] Comments. --- src/api/pool.js | 4 +++- src/index.js | 3 +++ src/xo.js | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/api/pool.js b/src/api/pool.js index 6ff9d0704..44ed70f60 100644 --- a/src/api/pool.js +++ b/src/api/pool.js @@ -71,5 +71,7 @@ uploadPatch.resolve = { pool: ['pool', 'pool'] } -// TODO: compatibility +// Compatibility +// +// TODO: remove when no longer used in xo-web export {uploadPatch as patch} diff --git a/src/index.js b/src/index.js index f2bbe711f..6d1c3e5c3 100644 --- a/src/index.js +++ b/src/index.js @@ -393,6 +393,9 @@ export default async function main (args) { setUpConsoleProxy(webServer, xo) // Must be set up before the API. + connect.use(bind(xo._handleHttpRequest, xo)) + + // TODO: remove when no longer necessary. connect.use(bind(xo._handleProxyRequest, xo)) // Must be set up before the static files. diff --git a/src/xo.js b/src/xo.js index eb5ef7b92..760cfd43f 100644 --- a/src/xo.js +++ b/src/xo.js @@ -474,6 +474,7 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- + // TODO: remove when no longer necessary. _handleProxyRequest (req, res, next) { const {url} = req const request = this._proxyRequests[url] @@ -512,7 +513,6 @@ export default class Xo extends EventEmitter { closeConnection() }) } - async registerProxyRequest (opts) { if (isString(opts)) { opts = parseUrl(opts) From 0101365ebc23a05de3ff4f32abe9ec78221ac5a9 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 May 2015 18:45:21 +0200 Subject: [PATCH 063/140] Configurable proxies. --- sample.config.yaml | 4 ++++ src/index.js | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/sample.config.yaml b/sample.config.yaml index 5b09d66f0..a6de47857 100644 --- a/sample.config.yaml +++ b/sample.config.yaml @@ -91,6 +91,10 @@ http: mounts: #'/': '/path/to/xo-web/dist/' + # List of proxied URLs (HTTP & WebSockets). + proxies: + # '/any/url': 'http://localhost:54722' + #===================================================================== # Connection to the Redis server. diff --git a/src/index.js b/src/index.js index 6d1c3e5c3..1a4a29709 100644 --- a/src/index.js +++ b/src/index.js @@ -16,6 +16,7 @@ import isArray from 'lodash.isarray' import isFunction from 'lodash.isfunction' import map from 'lodash.map' import pick from 'lodash.pick' +import proxyRequest from 'proxy-http-request' import serveStatic from 'serve-static' import WebSocket from 'ws' import { @@ -143,6 +144,34 @@ const createWebServer = opts => { // =================================================================== +const setUpProxies = (connect, opts) => { + // HTTP request proxy. + forEach(opts, (config, url) => { + connect.use(url, (req, res) => { + proxyRequest(config, req, res) + }) + }) + + // WebSocket proxy. + const webSocketServer = new WebSocket.Server({ + noServer: true + }) + connect.on('upgrade', (req, socket, head) => { + const {url} = req + + const config = opts[url] + if (!config) { + return + } + + webSocketServer.handleUpgrade(req, socket, head, socket => { + wsProxy(socket, config) + }) + }) +} + +// =================================================================== + const setUpStaticFiles = (connect, opts) => { forEach(opts, (paths, url) => { if (!isArray(paths)) { @@ -278,7 +307,7 @@ const setUpConsoleProxy = (webServer, xo) => { noServer: true }) - webServer.on('upgrade', (req, res, head) => { + webServer.on('upgrade', (req, socket, head) => { const matches = CONSOLE_PROXY_PATH_RE.exec(req.url) if (!matches) { return @@ -290,7 +319,7 @@ const setUpConsoleProxy = (webServer, xo) => { } // FIXME: lost connection due to VM restart is not detected. - webSocketServer.handleUpgrade(req, res, head, connection => { + webSocketServer.handleUpgrade(req, socket, head, connection => { wsProxy(connection, url) }) }) @@ -401,6 +430,8 @@ export default async function main (args) { // Must be set up before the static files. setUpApi(webServer, xo) + setUpProxies(connect, config.http.proxies) + setUpStaticFiles(connect, config.http.mounts) if (!(await xo._users.exists())) { From 19e26729a80f38ea302955885de29ed9d3634cf1 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 12 May 2015 18:49:40 +0200 Subject: [PATCH 064/140] Correctly initialize Xo#_httpRequestWatchers. --- src/xo.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/xo.js b/src/xo.js index 760cfd43f..92152555e 100644 --- a/src/xo.js +++ b/src/xo.js @@ -92,6 +92,9 @@ export default class Xo extends EventEmitter { spec.call(this._xobjs) this._watchXobjs() + this._httpRequestWatchers = Object.create(null) + + // TODO: remove when no longer necessary. this._proxyRequests = Object.create(null) this._authenticationProviders = new Set() From ab7b2da83b8d3fcbbd90ec951213ca9aaf9383bc Mon Sep 17 00:00:00 2001 From: Fabrice Marsaud Date: Wed, 13 May 2015 10:05:05 +0200 Subject: [PATCH 065/140] Mixed missing error import --- src/xo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xo.js b/src/xo.js index 92152555e..5ea06b61a 100644 --- a/src/xo.js +++ b/src/xo.js @@ -18,7 +18,7 @@ import Xapi from './xapi' import {$MappedCollection as MappedCollection} from './MappedCollection' import {Acls} from './models/acl' import {generateToken} from './utils' -import {NoSuchObject} from './api-errors' +import {JsonRpcError, NoSuchObject} from './api-errors' import {Servers} from './models/server' import {Tokens} from './models/token' From 7412d97bf32cf861df25186fe25c52eaa15e197c Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 13 May 2015 10:33:00 +0200 Subject: [PATCH 066/140] Do not attempt to set up proxies if there are none. --- src/index.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/index.js b/src/index.js index 1a4a29709..0fed8746a 100644 --- a/src/index.js +++ b/src/index.js @@ -145,6 +145,10 @@ const createWebServer = opts => { // =================================================================== const setUpProxies = (connect, opts) => { + if (!opts) { + return + } + // HTTP request proxy. forEach(opts, (config, url) => { connect.use(url, (req, res) => { From 4dd3be1568d76d3d0ba0c0bdfac66314c21dc543 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 13 May 2015 12:00:01 +0200 Subject: [PATCH 067/140] ACLs functions moved to Xo. --- src/api/acl.js | 54 +++++++++++--------------------------------------- src/xo.js | 46 ++++++++++++++++++++++++++++++++++++++---- 2 files changed, 54 insertions(+), 46 deletions(-) diff --git a/src/api/acl.js b/src/api/acl.js index 71226e14c..e91ce7dcb 100644 --- a/src/api/acl.js +++ b/src/api/acl.js @@ -3,36 +3,19 @@ import {ModelAlreadyExists} from '../collection' // =================================================================== -export const get = coroutine(function * ({subject, object}) { - const sieve = {} - try { - if (subject !== undefined) { - sieve.subject = (yield this.users.first(subject)).get('id') - } - if (object !== undefined) { - sieve.object = this.getObject(object).id - } - } catch (error) { - this.throw('NO_SUCH_OBJECT') - } - - return this.acls.get(sieve) -}) +export async function get () { + return await this.getAllAcls() +} get.permission = 'admin' -get.params = { - subject: { type: 'string', optional: true }, - object: { type: 'string', optional: true } -} - get.description = 'get existing ACLs' // ------------------------------------------------------------------- -export const getCurrent = coroutine(function * () { - return this.acls.get({ subject: this.session.get('user_id') }) -}) +export async function getCurrent () { + return await this.getAclsForSubject(this.session.get('user_id')) +} getCurrent.permission = '' @@ -40,22 +23,9 @@ getCurrent.description = 'get existing ACLs concerning current user' // ------------------------------------------------------------------- -export const add = coroutine(function * ({subject, object}) { - try { - subject = (yield this.users.first(subject)).get('id') - object = this.getObject(object).id - } catch (error) { - this.throw('NO_SUCH_OBJECT') - } - - try { - yield this.acls.create(subject, object) - } catch (error) { - if (!(error instanceof ModelAlreadyExists)) { - throw error - } - } -}) +export async function add ({subject, object}) { + await this.addAcl(subject, object) +} add.permission = 'admin' @@ -68,9 +38,9 @@ add.description = 'add a new ACL entry' // ------------------------------------------------------------------- -export const remove = coroutine(function * ({subject, object}) { - yield this.acls.delete(subject, object) -}) +export async function remove ({subject, object}) { + await this.removeAcl(subject, object) +} remove.permission = 'admin' diff --git a/src/xo.js b/src/xo.js index 5ea06b61a..c20ccfb05 100644 --- a/src/xo.js +++ b/src/xo.js @@ -74,11 +74,11 @@ export default class Xo extends EventEmitter { // These will be initialized in start() // // TODO: remove and put everything in the `_objects` collection. + this._acls = null this._servers = null this._tokens = null this._users = null this._UUIDsToKeys = null - this.acls = null // Connections to Xen servers. this._xapis = Object.create(null) @@ -130,7 +130,7 @@ export default class Xo extends EventEmitter { const redis = createRedisClient(config.redis && config.redis.uri) // Creates persistent collections. - this.acls = new Acls({ + this._acls = new Acls({ connection: redis, prefix: 'xo:acl', indexes: ['subject', 'object'] @@ -184,6 +184,34 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- + async addAcl (subject, object) { + subject = (await this.getUser(subject)).id + object = this.getObject(object).id + + try { + await this._acls.create(subject, object) + } catch (error) { + if (!(error instanceof ModelAlreadyExists)) { + throw error + } + } + } + + async removeAcl (subject, object) { + await this._acls.delete(subject, object) + } + + async getAclsForSubject (subject) { + return this._acls.get({ subject }) + } + + // TODO: remove when new collection. + async getAllAcls () { + return this._acls.get() + } + + // ----------------------------------------------------------------- + async createUser ({email, password, permission}) { // TODO: use plain objects const user = await this._users.create(email, password, permission) @@ -207,8 +235,7 @@ export default class Xo extends EventEmitter { await this._users.update(user) } - // TODO: this method will no longer be async when users are - // integrated to the main collection. + // Merge this method in getUser() when plain objects. async _getUser (id) { const user = await this._users.first(id) if (!user) { @@ -218,6 +245,12 @@ export default class Xo extends EventEmitter { return user } + // TODO: this method will no longer be async when users are + // integrated to the main collection. + async getUser (id) { + return (await this._getUser(id)).properties + } + // ----------------------------------------------------------------- async createAuthenticationToken ({userId}) { @@ -370,6 +403,8 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- // Returns an object from its key or UUID. + // + // TODO: should throw a NoSuchObject error on failure. getObject (key, type) { // Gracefully handles UUIDs. if (key in this._UUIDsToKeys) { @@ -539,6 +574,9 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- + // TODO: should be removed when no longer used. + // + // Replaced internally by Xapi. watchTask (ref) { let watcher = this._taskWatchers[ref] if (!watcher) { From ca517784ed05fe3d8994a9e4796eac29419913e3 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 13 May 2015 14:27:14 +0200 Subject: [PATCH 068/140] Fix many errors and styles. --- src/api.js | 9 +-------- src/api/acl.js | 5 ----- src/api/docker.js | 10 ++++++---- src/api/server.js | 1 - src/api/token.js | 2 +- src/xapi.js | 4 +--- src/xo.js | 17 ++++++++++++----- 7 files changed, 21 insertions(+), 27 deletions(-) diff --git a/src/api.js b/src/api.js index 7e4f99810..36711b0f2 100644 --- a/src/api.js +++ b/src/api.js @@ -124,14 +124,7 @@ const checkAuthorizationByTypes = { } function defaultCheckAuthorization (userId, object) { - return this.acls.exists({ - subject: userId, - object: object.id - }).then(success => { - if (!success) { - throw new Unauthorized() - } - }) + return this.canAccess(userId, object.id) } checkAuthorization = Bluebird.method(function (userId, object) { diff --git a/src/api/acl.js b/src/api/acl.js index e91ce7dcb..5b0d993ae 100644 --- a/src/api/acl.js +++ b/src/api/acl.js @@ -1,8 +1,3 @@ -import {coroutine} from 'bluebird' -import {ModelAlreadyExists} from '../collection' - -// =================================================================== - export async function get () { return await this.getAllAcls() } diff --git a/src/api/docker.js b/src/api/docker.js index 92fb7ce5d..72e8aa381 100644 --- a/src/api/docker.js +++ b/src/api/docker.js @@ -6,14 +6,15 @@ register.permission = 'admin' register.description = 'Register the VM for Docker management' register.params = { - vm: { type: 'string' }, + vm: { type: 'string' } } register.resolve = { vm: ['vm', 'VM'] } -//------------------------------------------------------------------------------ +// ----------------------------------------------------------------------------- + export async function deregister ({vm}) { await this.getXAPI(vm).unregisterDockerContainer(vm.id) } @@ -22,14 +23,15 @@ deregister.permission = 'admin' deregister.description = 'Deregister the VM for Docker management' deregister.params = { - vm: { type: 'string' }, + vm: { type: 'string' } } deregister.resolve = { vm: ['vm', 'VM'] } -//------------------------------------------------------------------------------ +// ----------------------------------------------------------------------------- + export async function start ({vm, container}) { await this.getXAPI(vm).startDockerContainer(vm.id, container) } diff --git a/src/api/server.js b/src/api/server.js index e27362564..b04b43dd8 100644 --- a/src/api/server.js +++ b/src/api/server.js @@ -1,5 +1,4 @@ import {coroutine} from 'bluebird' -import {JsonRpcError, NoSuchObject} from '../api-errors' // =================================================================== diff --git a/src/api/token.js b/src/api/token.js index 025c63cf8..919fa7f29 100644 --- a/src/api/token.js +++ b/src/api/token.js @@ -1,4 +1,4 @@ -import {NoSuchObject, Unauthorized} from '../api-errors' +import {Unauthorized} from '../api-errors' // =================================================================== diff --git a/src/xapi.js b/src/xapi.js index cea68e93f..7b761919c 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -1,6 +1,5 @@ import createDebug from 'debug' import eventToPromise from 'event-to-promise' -import find from 'lodash.find' import forEach from 'lodash.foreach' import got from 'got' import map from 'lodash.map' @@ -175,7 +174,6 @@ export default class Xapi extends XapiBase { const ref = await this.call('task.create', name, description) debug('task created: %s', name) - pFinally(this._watchTask(ref), () => { this.call('task.destroy', ref).then(() => { debug('task destroyed: %s', name) @@ -266,7 +264,7 @@ export default class Xapi extends XapiBase { documentationUrl: patch.url, guidance: patch['after-apply-guidance'], name: patch['name-label'], - url: patch['patch-url'], + url: patch['patch-url'] // TODO: what does it mean, should we handle it? // version: patch.version, diff --git a/src/xo.js b/src/xo.js index c20ccfb05..ae5069798 100644 --- a/src/xo.js +++ b/src/xo.js @@ -11,6 +11,7 @@ import {createClient as createRedisClient} from 'then-redis' import {EventEmitter} from 'events' import {parse as parseUrl} from 'url' +import {ModelAlreadyExists} from './collection' import Connection from './connection' import spec from './spec' import User, {Users} from './models/user' @@ -18,7 +19,7 @@ import Xapi from './xapi' import {$MappedCollection as MappedCollection} from './MappedCollection' import {Acls} from './models/acl' import {generateToken} from './utils' -import {JsonRpcError, NoSuchObject} from './api-errors' +import {JsonRpcError, NoSuchObject, Unauthorized} from './api-errors' import {Servers} from './models/server' import {Tokens} from './models/token' @@ -210,6 +211,12 @@ export default class Xo extends EventEmitter { return this._acls.get() } + async canAccess (userId, objectId) { + if (!await this._acls.exists({subject: userId, object: objectId})) { + throw new Unauthorized() + } + } + // ----------------------------------------------------------------- async createUser ({email, password, permission}) { @@ -225,7 +232,7 @@ export default class Xo extends EventEmitter { } } - async updateUser(id, {email, password, permission}) { + async updateUser (id, {email, password, permission}) { const user = await this._getUser(id) if (email) user.set('email', email) @@ -433,7 +440,7 @@ export default class Xo extends EventEmitter { const {_UUIDsToKeys: UUIDsToKeys} = this for (let i = 0, n = keys.length; i < n; ++i) { const key = UUIDsToKeys[keys[i]] - if (key != null) { + if (key != null) { keys[i] = key } } @@ -472,7 +479,7 @@ export default class Xo extends EventEmitter { delete watchers[url] const {fn, data} = watcher - Bluebird.try(watcher, [data]).then( + Bluebird.try(fn, [data]).then( result => { if (result != null) { res.end(JSON.stringify(result)) @@ -497,7 +504,7 @@ export default class Xo extends EventEmitter { const url = `/api/${token}` return url in watchers ? - generateUrl() : + generateUniqueUrl() : url }) })() From 41147483d853365bfac769963dbf499e68b93d58 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Wed, 13 May 2015 15:25:36 +0200 Subject: [PATCH 069/140] remove old docker method in VM and add the bootOrder method --- src/api/vm.coffee | 37 ++++++++++--------------------------- src/spec.coffee | 2 ++ 2 files changed, 12 insertions(+), 27 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 7ffe2c336..b6a46dbf9 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -1105,41 +1105,24 @@ exports.stats = stats; #--------------------------------------------------------------------- -enableDocker = $coroutine ({vm}) -> +bootOrder = $coroutine ({vm, order}) -> xapi = @getXAPI vm - $wait xapi.call 'VM.remove_from_other_config', vm.ref, 'xscontainer-monitor' - $wait xapi.call 'VM.add_to_other_config', vm.ref, 'xscontainer-monitor', 'True' + order = {order: order} + + $wait xapi.call 'VM.set_HVM_boot_params', vm.ref, order return true -enableDocker.params = { - vm: { type: 'string' } +bootOrder.params = { + vm: { type: 'string' }, + order: { type: 'string' } } -enableDocker.resolve = { +bootOrder.resolve = { vm: ['vm', 'VM'], } -enableDocker.permission = 'admin' -exports.enableDocker = enableDocker +bootOrder.permission = 'admin' +exports.bootOrder = bootOrder #--------------------------------------------------------------------- - -disableDocker = $coroutine ({vm}) -> - xapi = @getXAPI vm - - $wait xapi.call 'VM.remove_from_other_config', vm.ref, 'xscontainer-monitor' - $wait xapi.call 'VM.add_to_other_config', vm.ref, 'xscontainer-monitor', 'False' - - return true - - -disableDocker.params = { - vm: { type: 'string' } -} - -disableDocker.resolve = { - vm: ['vm', 'VM'], -} -disableDocker.permission = 'admin' -exports.disableDocker = disableDocker diff --git a/src/spec.coffee b/src/spec.coffee index 47bbc7b94..55d0f74c5 100644 --- a/src/spec.coffee +++ b/src/spec.coffee @@ -459,6 +459,8 @@ module.exports = -> name_description: -> @genval.name_description + boot: -> @genval.HVM_boot_params + addresses: -> {guest_metrics} = @data if guest_metrics From 2a075d929af955e3115995473e4f16f285ed7e10 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 14 May 2015 15:53:54 +0200 Subject: [PATCH 070/140] Xapi#_setObjectProperties() gets the object type itself. --- src/xapi.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/xapi.js b/src/xapi.js index 7b761919c..bf0571ecd 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -209,8 +209,11 @@ export default class Xapi extends XapiBase { // ================================================================= - async _setObjectProperties (type, id, props) { - const {$ref: ref} = this.getObject(id) + async _setObjectProperties (id, props) { + const { + $ref: ref, + $type: type + } = this.getObject(id) // TODO: the thrown error should contain the name of the // properties that failed to be set. @@ -225,7 +228,7 @@ export default class Xapi extends XapiBase { name_label, name_description }) { - await this._setObjectProperties('pool', this.pool.$id, { + await this._setObjectProperties(this.pool.$id, { name_label, name_description }) @@ -235,7 +238,7 @@ export default class Xapi extends XapiBase { name_label, name_description }) { - await this._setObjectProperties('SR', id, { + await this._setObjectProperties(id, { name_label, name_description }) From 66883ae37cb2544286a54d6aad8fe8e25dfd2e12 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 15 May 2015 11:47:18 +0200 Subject: [PATCH 071/140] Remove discouraged path for the config file from the doc. --- sample.config.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/sample.config.yaml b/sample.config.yaml index a6de47857..0cc893022 100644 --- a/sample.config.yaml +++ b/sample.config.yaml @@ -1,7 +1,6 @@ # Example XO-Server configuration. # This file is automatically looking for at the following places: -# - `./.xo-server.yaml` up to `/.xo-server.yaml` # - `$HOME/.config/xo-server/config.yaml` # - `/etc/xo-server/config.yaml` # From 03e8b664ac43edcc2b142a7c10928c8260d55bdc Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Sun, 17 May 2015 23:08:16 +0200 Subject: [PATCH 072/140] add host stats --- src/api/host.coffee | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/src/api/host.coffee b/src/api/host.coffee index f8f387b57..ec682541b 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -3,6 +3,7 @@ $request = require('bluebird').promisify(require('request')) {parseXml} = require '../utils' $forEach = require 'lodash.foreach' $find = require 'lodash.find' +$findIndex = require 'lodash.findindex' #===================================================================== @@ -244,3 +245,85 @@ installPatch.resolve = { } exports.installPatch = installPatch + +#--------------------------------------------------------------------- + + +stats = $coroutine ({host}) -> + + xapi = @getXAPI host + + [response, body] = $wait $request { + method: 'get' + rejectUnauthorized: false + url: 'https://'+host.address+'/host_rrd?session_id='+xapi.sessionId + } + + if response.statusCode isnt 200 + throw new Error('Cannot fetch the RRDs') + + json = parseXml(body) + # Find index of needed objects for getting their values after + cpusIndexes = [] + index = 0 + while (pos = $findIndex(json.rrd.ds, 'name', 'cpu' + index++)) isnt -1 + cpusIndexes.push(pos) + pifsIndexes = [] + index = 0 + while (pos = $findIndex(json.rrd.ds, 'name', 'pif_eth' + index + '_rx')) isnt -1 + pifsIndexes.push(pos) + pifsIndexes.push($findIndex(json.rrd.ds, 'name', 'pif_eth' + (index++) + '_tx')) + + memoryFreeIndex = $findIndex(json.rrd.ds, 'name': 'memory_free_kib') + memoryIndex = $findIndex(json.rrd.ds, 'name': 'memory_total_kib') + loadIndex = $findIndex(json.rrd.ds, 'name': 'loadavg') + + memoryFree = [] + memoryUsed = [] + memory = [] + load = [] + cpus = [] + pifs = [] + date = [] #TODO + baseDate = json.rrd.lastupdate + dateStep = json.rrd.step + numStep = json.rrd.rra[0].database.row.length - 1 + + $forEach json.rrd.rra[0].database.row, (n, key) -> + memoryFree.push(Math.round(parseInt(n.v[memoryFreeIndex]))) + memoryUsed.push(Math.round(parseInt(n.v[memoryIndex])-(n.v[memoryFreeIndex]))) + memory.push(parseInt(n.v[memoryIndex])) + load.push(n.v[loadIndex]) + date.push(baseDate - (dateStep * (numStep - key))) + # build the multi dimensional arrays + $forEach cpusIndexes, (value, key) -> + cpus[key] ?= [] + cpus[key].push(n.v[value]*100) + return + $forEach pifsIndexes, (value, key) -> + pifs[key] ?= [] + pifs[key].push(if n.v[value] == 'NaN' then null else n.v[value]) # * (if key % 2 then -1 else 1)) + return + return + + + # the final object + return { + memoryFree: memoryFree + memoryUsed: memoryUsed + memory: memory + date: date + cpus: cpus + pifs: pifs + load: load + } + +stats.params = { + host: { type: 'string' } +} + +stats.resolve = { + host: ['host', 'host'] +} + +exports.stats = stats; From 7aac1244076c4340d1254c3b195dc8d2bd8f73b7 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 18 May 2015 11:15:17 +0200 Subject: [PATCH 073/140] Forward the upgrade event to connect. --- src/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/index.js b/src/index.js index 0fed8746a..f9c40a9ad 100644 --- a/src/index.js +++ b/src/index.js @@ -421,6 +421,9 @@ export default async function main (args) { // Connect is used to manage non WebSocket connections. const connect = createConnectApp() webServer.on('request', connect) + webServer.on('upgrade', (req, socket, head) => { + connect.emit('upgrade', req, socket, head) + }) // Must be set up before the API. setUpConsoleProxy(webServer, xo) From 1d0de4584e7bbdc7715cb4ba38131380c9714a14 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 18 May 2015 11:56:37 +0200 Subject: [PATCH 074/140] Fix session.getUser(). --- src/api/session.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/session.js b/src/api/session.js index 2b39732aa..371f86dbe 100644 --- a/src/api/session.js +++ b/src/api/session.js @@ -57,7 +57,7 @@ export const getUser = coroutine(function () { return userId === undefined ? null : - this.getUserPublicProperties(wait(this.users.first(userId))) + this.getUserPublicProperties(wait(this.getUser(userId))) }) getUser.description = 'return the currently connected user' From 523a30afb4642cb4fad35fa4f8e9a863e3f7afa3 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 09:54:57 +0200 Subject: [PATCH 075/140] Fix initial user creation (fix #57). --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index f9c40a9ad..0cb3fe33d 100644 --- a/src/index.js +++ b/src/index.js @@ -445,7 +445,7 @@ export default async function main (args) { const email = 'admin@admin.net' const password = 'admin' - xo.users.create(email, password, 'admin') + await xo.createUser({email, password, permission: 'admin'}) info('Default user created:', email, ' with password', password) } From 65daa23a748ecb909d73519ecea86768ea7453b1 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 12:27:02 +0200 Subject: [PATCH 076/140] Do not set rejectUnauthorized by default in wsProxy. --- src/index.js | 4 +++- src/ws-proxy.js | 37 ++++++++++++++++--------------------- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/index.js b/src/index.js index 0cb3fe33d..6cd75fc4e 100644 --- a/src/index.js +++ b/src/index.js @@ -324,7 +324,9 @@ const setUpConsoleProxy = (webServer, xo) => { // FIXME: lost connection due to VM restart is not detected. webSocketServer.handleUpgrade(req, socket, head, connection => { - wsProxy(connection, url) + wsProxy(connection, url, { + rejectUnauthorized: false + }) }) }) } diff --git a/src/ws-proxy.js b/src/ws-proxy.js index 046a0cca0..9610830d7 100644 --- a/src/ws-proxy.js +++ b/src/ws-proxy.js @@ -6,46 +6,41 @@ const debug = createDebug('xo:wsProxy') const defaults = { // Automatically close the client connection when the remote close. - autoClose: true, - - // Reject secure connections to unauthorized remotes (bad CA). - rejectUnauthorized: false + autoClose: true } // Proxy a WebSocket `client` to a remote server which has `url` as // address. export default function wsProxy (client, url, opts) { opts = assign({}, defaults, opts) + const autoClose = !!opts.autoClose + delete opts.autoClose - const remote = new WebSocket(url, { - protocol: opts.protocol || client.protocol, - rejectUnauthorized: opts.rejectUnauthorized - }).once('open', function () { - debug('connected to', url) + function onClientSendError (error) { + debug('client send error', error) + } + function onRemoteSendError (error) { + debug('remote send error', error) + } + + const remote = new WebSocket(url, opts).once('open', function () { + debug('connected to %s', url) }).once('close', function () { debug('remote closed') - if (opts.autoClose) { + if (autoClose) { client.close() } }).once('error', function (error) { - debug('remote error', error) + debug('remote error: %s', error) }).on('message', function (message) { - client.send(message, function (error) { - if (error) { - debug('client send error', error) - } - }) + client.send(message, onClientSendError) }) client.once('close', function () { debug('client closed') remote.close() }).on('message', function (message) { - remote.send(message, function (error) { - if (error) { - debug('remote send error', error) - } - }) + remote.send(message, onRemoteSendError) }) } From e4486f4c175353f4a204fe7d3f57216cbc573985 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 12:31:14 +0200 Subject: [PATCH 077/140] Fix send error messages in wsProxy. --- src/ws-proxy.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/ws-proxy.js b/src/ws-proxy.js index 9610830d7..f09fcb724 100644 --- a/src/ws-proxy.js +++ b/src/ws-proxy.js @@ -16,11 +16,15 @@ export default function wsProxy (client, url, opts) { const autoClose = !!opts.autoClose delete opts.autoClose - function onClientSendError (error) { - debug('client send error', error) + function onClientSend (error) { + if (error) { + debug('client send error', error) + } } - function onRemoteSendError (error) { - debug('remote send error', error) + function onRemoteSend (error) { + if (error) { + debug('remote send error', error) + } } const remote = new WebSocket(url, opts).once('open', function () { @@ -34,13 +38,13 @@ export default function wsProxy (client, url, opts) { }).once('error', function (error) { debug('remote error: %s', error) }).on('message', function (message) { - client.send(message, onClientSendError) + client.send(message, onClientSend) }) client.once('close', function () { debug('client closed') remote.close() }).on('message', function (message) { - remote.send(message, onRemoteSendError) + remote.send(message, onRemoteSend) }) } From 1f98d7e5ec8b1d80a90b46024de03f002b5f8bf9 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 12:55:35 +0200 Subject: [PATCH 078/140] HTTP proxy correctly handle subpaths. --- src/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 6cd75fc4e..d19ffde50 100644 --- a/src/index.js +++ b/src/index.js @@ -150,9 +150,9 @@ const setUpProxies = (connect, opts) => { } // HTTP request proxy. - forEach(opts, (config, url) => { + forEach(opts, (target, url) => { connect.use(url, (req, res) => { - proxyRequest(config, req, res) + proxyRequest(target + req.url, req, res) }) }) From bf7647c7376a5849f30cb0dd824c47186aa03769 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 12:55:46 +0200 Subject: [PATCH 079/140] WS proxy correctly handle subpaths. --- src/index.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/index.js b/src/index.js index d19ffde50..94c6279da 100644 --- a/src/index.js +++ b/src/index.js @@ -163,14 +163,17 @@ const setUpProxies = (connect, opts) => { connect.on('upgrade', (req, socket, head) => { const {url} = req - const config = opts[url] - if (!config) { - return + for (let prefix in opts) { + console.log({prefix, url}) + if (url.lastIndexOf(prefix, 0) !== -1) { + const target = opts[prefix] + url.slice(prefix.length) + console.log('ok', opts[prefix]) + webSocketServer.handleUpgrade(req, socket, head, socket => { + wsProxy(socket, target) + }) + return + } } - - webSocketServer.handleUpgrade(req, socket, head, socket => { - wsProxy(socket, config) - }) }) } From 84564bb7fbd80c394d4d19b45f98f2d11eb7e97c Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 12:56:06 +0200 Subject: [PATCH 080/140] WS proxy forwards the subprotocol. --- src/ws-proxy.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ws-proxy.js b/src/ws-proxy.js index f09fcb724..2bc258bf6 100644 --- a/src/ws-proxy.js +++ b/src/ws-proxy.js @@ -12,7 +12,9 @@ const defaults = { // Proxy a WebSocket `client` to a remote server which has `url` as // address. export default function wsProxy (client, url, opts) { - opts = assign({}, defaults, opts) + opts = assign({}, defaults, { + protocol: client.protocol + }, opts) const autoClose = !!opts.autoClose delete opts.autoClose From 452826bd61b91cd65061b352106a329b2c828375 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 12:58:46 +0200 Subject: [PATCH 081/140] Missing token is not a auth provider bug. --- src/index.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 94c6279da..bddaaf989 100644 --- a/src/index.js +++ b/src/index.js @@ -368,7 +368,12 @@ const registerTokenAuthenticationProvider = (xo) => { throw null } - return (await xo.getAuthenticationToken(tokenId)).user_id + try { + return (await xo.getAuthenticationToken(tokenId)).user_id + } catch (e) { + // It is not an error if the token does not exists. + throw null + } } xo.registerAuthenticationProvider(tokenAuthenticationProvider) From 91f557ac9e33a0efa73009965fa2ae496476377a Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 12:59:02 +0200 Subject: [PATCH 082/140] TODO: sort proxies by descending prefix length. --- src/index.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/index.js b/src/index.js index bddaaf989..33e75684b 100644 --- a/src/index.js +++ b/src/index.js @@ -149,6 +149,8 @@ const setUpProxies = (connect, opts) => { return } + // TODO: sort proxies by descending prefix length. + // HTTP request proxy. forEach(opts, (target, url) => { connect.use(url, (req, res) => { From 9d1da815570e0d5b60a126045a163f3db69e6196 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 13:03:12 +0200 Subject: [PATCH 083/140] Remove unnecessary traces. --- src/index.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/index.js b/src/index.js index 33e75684b..91270a1ff 100644 --- a/src/index.js +++ b/src/index.js @@ -166,10 +166,8 @@ const setUpProxies = (connect, opts) => { const {url} = req for (let prefix in opts) { - console.log({prefix, url}) if (url.lastIndexOf(prefix, 0) !== -1) { const target = opts[prefix] + url.slice(prefix.length) - console.log('ok', opts[prefix]) webSocketServer.handleUpgrade(req, socket, head, socket => { wsProxy(socket, target) }) From e48d27744083215da2dc1a044fa3ffc449bdf5bb Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 17:45:02 +0200 Subject: [PATCH 084/140] SPDX valid license. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a848b5e70..e31342287 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "xo-server", "version": "3.9.1", - "license": "AGPL3", + "license": "AGPL-3.0", "description": "Server part of Xen-Orchestra", "keywords": [ "xen", From 5467c4b1b835212db1fd8602ac98a7b2ad6c1fc5 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 19 May 2015 18:40:49 +0200 Subject: [PATCH 085/140] Fix proxy URLs generation (fix #58). --- src/xo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xo.js b/src/xo.js index ae5069798..82513bbec 100644 --- a/src/xo.js +++ b/src/xo.js @@ -573,7 +573,7 @@ export default class Xo extends EventEmitter { opts.createdAt = Date.now() - const url = `/${await generateToken()} ` + const url = `/${await generateToken()}` this._proxyRequests[url] = opts return url From 76d551a238222a83468d2a39cc8c836710c505a8 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 20 May 2015 10:28:22 +0200 Subject: [PATCH 086/140] Move consoles in /api/consoles/ --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 91270a1ff..c45bcbb91 100644 --- a/src/index.js +++ b/src/index.js @@ -307,7 +307,7 @@ const getVmConsoleUrl = (xo, id) => { return url } -const CONSOLE_PROXY_PATH_RE = /^\/consoles\/(.*)$/ +const CONSOLE_PROXY_PATH_RE = /^\/api\/consoles\/(.*)$/ const setUpConsoleProxy = (webServer, xo) => { const webSocketServer = new WebSocket.Server({ From 56787428105ff7c16a69dcd05f103a69d14ebe3d Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 22 May 2015 11:58:19 +0200 Subject: [PATCH 087/140] Fix SR editing. --- src/xapi.js | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index bf0571ecd..11d382f2b 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -28,6 +28,40 @@ const wrapError = error => { // =================================================================== +const typeToNamespace = Object.create(null) +forEach([ + 'Bond', + 'DR_task', + 'GPU_group', + 'PBD', + 'PCI', + 'PGPU', + 'PIF', + 'PIF_metrics', + 'SM', + 'SR', + 'VBD', + 'VBD_metrics', + 'VDI', + 'VGPU', + 'VGPU_type', + 'VLAN', + 'VM', + 'VM_appliance', + 'VM_guest_metrics', + 'VM_metrics', + 'VMPP', + 'VTPM', +], namespace => { + typeToNamespace[namespace.toLowerCase()] = namespace +}) + +// Object types given by `xen-api` are always lowercase but the +// namespaces in the Xen API can have a different casing. +const getNamespaceForType = (type) => typeToNamespace[type] || type + +// =================================================================== + export default class Xapi extends XapiBase { constructor (...args) { super(...args) @@ -215,11 +249,13 @@ export default class Xapi extends XapiBase { $type: type } = this.getObject(id) + const namespace = getNamespaceForType(type) + // TODO: the thrown error should contain the name of the // properties that failed to be set. await Promise.all(map(props, (value, name) => { if (value != null) { - return this.call(`${type}.set_${name}`, ref, value) + return this.call(`${namespace}.set_${name}`, ref, value) } })) } From 16450e2133030a841069c2e20dfd535f2ba03e3c Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 22 May 2015 11:58:31 +0200 Subject: [PATCH 088/140] Remove useless statement. --- src/xapi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index 11d382f2b..a0af05e77 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -350,7 +350,7 @@ export default class Xapi extends XapiBase { software_version: {product_version: version}, patches } = this.getObject(hostId) - console.log + return omit( (await this._getXenUpdates()).versions[version].patches, From 9a265a04375aa4f51c2a09ff512fca0297259393 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 22 May 2015 16:37:26 +0200 Subject: [PATCH 089/140] New API method: test.wait(). --- src/api/test.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/api/test.js diff --git a/src/api/test.js b/src/api/test.js new file mode 100644 index 000000000..20588efad --- /dev/null +++ b/src/api/test.js @@ -0,0 +1,13 @@ +import {delay} from 'bluebird' + +// =================================================================== + +export function wait ({duration, returnValue}) { + return delay(returnValue, +duration) +} + +wait.params = { + duration: { + type: 'string' + } +} From d9b3d263aede8ec05147d62cf37e7a7fefe8d3fc Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Sun, 24 May 2015 15:23:01 +0200 Subject: [PATCH 090/140] Remove no longer used xo.$running_VMs. --- src/spec.coffee | 5 ----- src/spec.spec.coffee | 10 ---------- 2 files changed, 15 deletions(-) diff --git a/src/spec.coffee b/src/spec.coffee index 55d0f74c5..002075130 100644 --- a/src/spec.coffee +++ b/src/spec.coffee @@ -242,11 +242,6 @@ module.exports = -> val: -> +(@val.CPUs.cpu_count) } - $running_VMs: $set { - rule: 'VM' - if: $isVMRunning - } - $vCPUs: $sum { rule: 'VM' val: -> @val.CPUs.number diff --git a/src/spec.spec.coffee b/src/spec.spec.coffee index f2fcce38a..349b50159 100644 --- a/src/spec.spec.coffee +++ b/src/spec.spec.coffee @@ -41,16 +41,6 @@ describe 'spec', -> $expect(xo.$CPUs).to.equal 8 - $expect(xo.$running_VMs).to.have.members [ - 'OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620' - 'OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d' - 'OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386' - 'OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf' - 'OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1' - 'OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64' - 'OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b' - ] - $expect(xo.$vCPUs).to.equal 10 $expect(xo.$memory).to.be.an 'object' From c116d3f453520f78ac6c5324b444d5bc0016c35e Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Sun, 24 May 2015 15:24:18 +0200 Subject: [PATCH 091/140] Use babel-standard instead of standard. --- package.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e31342287..9755b7d3b 100644 --- a/package.json +++ b/package.json @@ -82,6 +82,7 @@ "xo-collection": "^0.2.0" }, "devDependencies": { + "babel-standard": "*", "chai": "~2.1.2", "gulp": "git://github.com/gulpjs/gulp#4.0", "gulp-babel": "^5", @@ -92,15 +93,15 @@ "in-publish": "^1.1.1", "mocha": "^2.2.1", "node-inspector": "^0.9.2", - "sinon": "^1.14.1", - "standard": "*" + "sinon": "^1.14.1" }, "scripts": { "build": "gulp build --production", "dev": "gulp build", + "lint": "babel-standard", "prepublish": "in-publish && npm run build || in-install", "start": "node bin/xo-server", - "test": "standard && mocha 'dist/**/*.spec.js'" + "test": "mocha 'dist/**/*.spec.js'" }, "standard": { "ignore": [ From f7e7ecf5ae1cde8e062fbb6b1250eba20b3dc3b9 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Sun, 24 May 2015 15:24:27 +0200 Subject: [PATCH 092/140] Minor coding style fix. --- src/xapi.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi.js b/src/xapi.js index a0af05e77..5297e6b3c 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -51,7 +51,7 @@ forEach([ 'VM_guest_metrics', 'VM_metrics', 'VMPP', - 'VTPM', + 'VTPM' ], namespace => { typeToNamespace[namespace.toLowerCase()] = namespace }) From 22ed0227870b520ff7d07db9e4136bb4fb134bf3 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Sun, 24 May 2015 16:22:38 +0200 Subject: [PATCH 093/140] Updates @julien-f/json-rpc to 0.4.4. --- package.json | 2 +- src/index.js | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 9755b7d3b..0942492c2 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "url": "git://github.com/vatesfr/xo-server.git" }, "dependencies": { - "@julien-f/json-rpc": "^0.3.5", + "@julien-f/json-rpc": "^0.4.4", "@julien-f/unzip": "^0.2.1", "app-conf": "^0.3.4", "babel-runtime": "^5", diff --git a/src/index.js b/src/index.js index c45bcbb91..93684258d 100644 --- a/src/index.js +++ b/src/index.js @@ -26,7 +26,7 @@ import { NoSuchObject, NotImplemented } from './api-errors' -import {createServer as createJsonRpcServer} from '@julien-f/json-rpc' +import {createPeer as createJsonRpcPeer} from '@julien-f/json-rpc' import {readFile} from 'fs-promise' import Api from './api' @@ -252,7 +252,7 @@ const setUpApi = (webServer, xo) => { }) // Create the JSON-RPC server for this connection. - const jsonRpc = createJsonRpcServer(message => { + const jsonRpc = createJsonRpcPeer(message => { if (message.type === 'request') { return api.call(connection, message.method, message.params) } @@ -280,7 +280,7 @@ const setUpApi = (webServer, xo) => { // The socket may have been closed during the API method // execution. if (socket.readyState === WebSocket.OPEN) { - socket.send(JSON.stringify(data), onSend) + socket.send(data, onSend) } }) }) From 5801b29ede9437a2d285ba426c902c02d0a1e588 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Sun, 24 May 2015 16:51:51 +0200 Subject: [PATCH 094/140] Do not crash when the console URL cannot be found. --- src/index.js | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/index.js b/src/index.js index 93684258d..5b1c828d9 100644 --- a/src/index.js +++ b/src/index.js @@ -304,6 +304,10 @@ const getVmConsoleUrl = (xo, id) => { } }) + if (!url) { + throw new Error('VM console not found') + } + return url } @@ -320,17 +324,16 @@ const setUpConsoleProxy = (webServer, xo) => { return } - const url = getVmConsoleUrl(xo, matches[1]) - if (!url) { - return - } + try { + const url = getVmConsoleUrl(xo, matches[1]) - // FIXME: lost connection due to VM restart is not detected. - webSocketServer.handleUpgrade(req, socket, head, connection => { - wsProxy(connection, url, { - rejectUnauthorized: false + // FIXME: lost connection due to VM restart is not detected. + webSocketServer.handleUpgrade(req, socket, head, connection => { + wsProxy(connection, url, { + rejectUnauthorized: false + }) }) - }) + } catch (_) {} }) } From 9798d4ff6aff9952f5702a6c4baea876c4b165d4 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Sun, 24 May 2015 18:55:30 +0200 Subject: [PATCH 095/140] Update deps. --- package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 0942492c2..c1d955e11 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "exec-promise": "^0.5.1", "fibers": "~1.0.5", "fs-promise": "^0.3.1", - "got": "^2.9.2", + "got": "^3.2.0", "graceful-fs": "^3.0.6", "hashy": "~0.4.2", "http-server-plus": "^0.5.1", @@ -69,7 +69,7 @@ "lodash.result": "^3.0.0", "make-error": "^1", "multikey-hash": "^1.0.1", - "proxy-http-request": "0.0.2", + "proxy-http-request": "0.1.0", "request": "^2.53.0", "require-tree": "~1.0.1", "schema-inspector": "^1.5.1", @@ -79,7 +79,7 @@ "ws": "~0.7.1", "xen-api": "^0.3.0", "xml2js": "~0.4.6", - "xo-collection": "^0.2.0" + "xo-collection": "^0.3.2" }, "devDependencies": { "babel-standard": "*", @@ -92,7 +92,7 @@ "gulp-watch": "^4.2.2", "in-publish": "^1.1.1", "mocha": "^2.2.1", - "node-inspector": "^0.9.2", + "node-inspector": "^0.10.1", "sinon": "^1.14.1" }, "scripts": { From 00c38c96cdae46166526062dae2a827c299906f7 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Sun, 24 May 2015 19:30:43 +0200 Subject: [PATCH 096/140] Remove now unneeded code. --- src/api/vm.coffee | 36 +++++++++++++++++++------------- src/xo.js | 53 ----------------------------------------------- 2 files changed, 22 insertions(+), 67 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index b6a46dbf9..063865d3f 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -7,8 +7,11 @@ $findIndex = require 'lodash.findindex' $request = require('bluebird').promisify(require('request')) {$coroutine, $wait} = require '../fibers-utils' -{formatXml: $js2xml} = require '../utils' -{parseXml} = require '../utils' +{ + formatXml: $js2xml, + parseXml, + pFinally +} = require '../utils' $isVMRunning = do -> runningStates = { @@ -785,6 +788,7 @@ exports.revert = revert #--------------------------------------------------------------------- +# TODO: integrate in xapi.js export_ = $coroutine ({vm, compress}) -> compress ?= true @@ -809,22 +813,26 @@ export_ = $coroutine ({vm, compress}) -> else unless type is 'host' throw new Error "unexpected type: got #{type} instead of host" - taskRef = $wait xapi.call 'task.create', 'VM export via Xen Orchestra', 'Export VM '+vm.name_label - @watchTask taskRef - .then (result) -> - $debug 'export succeeded' - return - .catch (error) -> - $debug 'export failed: %j', error - return - .finally $coroutine => - xapi.call 'task.destroy', taskRef - + task = $wait xapi._createTask( + 'VM export via Xen Orchestra', + 'Export VM ' + vm.name_label + ) + pFinally( + xapi._watchTask(task) + .then (result) -> + $debug 'export succeeded' + return + .catch (error) -> + $debug 'export failed: %j', error + return + , + $coroutine => if snapshotRef? $debug 'deleting temp snapshot...' $wait exports.delete.call this, id: snapshotRef, delete_disks: true return + ) url = $wait @registerProxyRequest { method: 'get' @@ -833,7 +841,7 @@ export_ = $coroutine ({vm, compress}) -> query: { session_id: xapi.sessionId ref: exportRef - task_id: taskRef + task_id: task.$ref use_compression: if compress then 'true' else false } } diff --git a/src/xo.js b/src/xo.js index 82513bbec..ad68d9744 100644 --- a/src/xo.js +++ b/src/xo.js @@ -99,29 +99,6 @@ export default class Xo extends EventEmitter { this._proxyRequests = Object.create(null) this._authenticationProviders = new Set() - - const taskWatchers = this._taskWatchers = Object.create(null) - this._xobjs.on('rule=task', (event, tasks) => { - if (event !== 'enter') return - - forEach(tasks, ({val: task}) => { - const {ref} = task - - const watcher = taskWatchers[ref] - if (!watcher) return - - const {status} = task - if (status === 'success') { - watcher.resolve(task.result) - } else if (status === 'failure') { - watcher.reject(task.error_info) - } else { - return - } - - delete taskWatchers[ref] - }) - }) } // ----------------------------------------------------------------- @@ -581,36 +558,6 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- - // TODO: should be removed when no longer used. - // - // Replaced internally by Xapi. - watchTask (ref) { - let watcher = this._taskWatchers[ref] - if (!watcher) { - let resolve, reject - const promise = new Bluebird((resolve_, reject_) => { - resolve = resolve_ - reject = reject_ - }) - - // Register the watcher. - watcher = this._taskWatchers[ref] = { - promise, - resolve, - reject - } - - // Unregister the watcher once the promise is resolved. - promise.finally(() => { - delete this._taskWatchers[ref] - }) - } - - return watcher.promise - } - - // ----------------------------------------------------------------- - registerAuthenticationProvider (provider) { return this._authenticationProviders.add(provider) } From d1506bcdaef7e9ba4e1457b55dff1911804a8ddd Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Mon, 25 May 2015 11:24:49 +0200 Subject: [PATCH 097/140] start to work on patches conflicts and dependencies --- src/xapi.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/xapi.js b/src/xapi.js index 5297e6b3c..a9105eda6 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -10,8 +10,8 @@ import {promisify} from 'bluebird' import {Xapi as XapiBase} from 'xen-api' import {debounce} from './decorators' +import {ensureArray, parseXml, pFinally} from './utils' import {JsonRpcError} from './api-errors' -import {parseXml, pFinally} from './utils' const debug = createDebug('xo:xapi') @@ -303,7 +303,13 @@ export default class Xapi extends XapiBase { documentationUrl: patch.url, guidance: patch['after-apply-guidance'], name: patch['name-label'], - url: patch['patch-url'] + url: patch['patch-url'], + conflicts: map(ensureArray(patch.conflictingpatches), patch => { + return patch.conflictingpatch.uuid + }), + requirements: map(ensureArray(patch.requiredpatches), patch => { + return patch.requiredpatch.uuid + }) // TODO: what does it mean, should we handle it? // version: patch.version, From 9ab110277a03874d0dc990844fcf8b148bac6c7c Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 12:03:29 +0200 Subject: [PATCH 098/140] Do not include conflicting patches in Xapi#listMissingPoolPatchesOnHost(). --- src/xapi.js | 39 ++++++++++++++++++++++++++------------- 1 file changed, 26 insertions(+), 13 deletions(-) diff --git a/src/xapi.js b/src/xapi.js index a9105eda6..e6e64609a 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -3,7 +3,6 @@ import eventToPromise from 'event-to-promise' import forEach from 'lodash.foreach' import got from 'got' import map from 'lodash.map' -import omit from 'lodash.omit' import unzip from '@julien-f/unzip' import {PassThrough} from 'stream' import {promisify} from 'bluebird' @@ -352,20 +351,34 @@ export default class Xapi extends XapiBase { // ================================================================= async listMissingPoolPatchesOnHost (hostId) { - const { - software_version: {product_version: version}, - patches - } = this.getObject(hostId) + const host = this.getObject(hostId) + const {product_version: version} = host.software_version - return omit( - (await this._getXenUpdates()).versions[version].patches, + const all = (await this._getXenUpdates()).versions[version].patches - // TODO: simplify when we start to use xen-api >= 0.5 - map(patches, ref => { - const hostPatch = this.objects.all[this._refsToUuids[ref]] - return this._refsToUuids[hostPatch.pool_patch] - }) - ) + const installed = Object.create(null) + // TODO: simplify when we start to use xen-api >= 0.5 + forEach(host.patches, ref => { + const hostPatch = this.objects.all[this._refsToUuids[ref]] + installed[this._refsToUuids[hostPatch.pool_patch]] = true + }) + + const installable = [] + forEach(all, (patch, uuid) => { + if (installed[uuid]) { + return + } + + for (let uuid of patch.conflicts) { + if (uuid in installed) { + return + } + } + + installable.push(patch) + }) + + return installable } // ----------------------------------------------------------------- From 9bcb2ac0945e17be7967b8c377e58d1adf835cc1 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 12:51:42 +0200 Subject: [PATCH 099/140] Fix snapshot deletion after VM export. --- src/api/vm.coffee | 34 ++++++++-------------------------- src/utils.js | 7 +++++++ src/xapi.js | 37 ++++++++++++++++++++++++++++++++++++- 3 files changed, 51 insertions(+), 27 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 063865d3f..2830b75ea 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -239,28 +239,8 @@ exports.create = create #--------------------------------------------------------------------- -delete_ = $coroutine ({vm, delete_disks: deleteDisks}) -> - if $isVMRunning vm - @throw 'INVALID_PARAMS', 'The VM can only be deleted when halted' - - xapi = @getXAPI vm - - if deleteDisks - $forEach vm.$VBDs, (ref) => - try - VBD = @getObject ref, 'VBD' - catch e - return - - return if VBD.read_only or not VBD.VDI? - - $wait xapi.call 'VDI.destroy', VBD.VDI - - return - - $wait xapi.call 'VM.destroy', vm.ref - - return true +delete_ = ({vm, delete_disks: deleteDisks}) -> + return @getXAPI(vm).deleteVm(vm.id, deleteDisks) delete_.params = { id: { type: 'string' } @@ -819,17 +799,19 @@ export_ = $coroutine ({vm, compress}) -> ) pFinally( xapi._watchTask(task) - .then (result) -> + .then((result) -> $debug 'export succeeded' return - .catch (error) -> + ) + .catch((error) -> $debug 'export failed: %j', error return + ) , - $coroutine => + -> if snapshotRef? $debug 'deleting temp snapshot...' - $wait exports.delete.call this, id: snapshotRef, delete_disks: true + xapi.deleteVm(snapshotRef, true) return ) diff --git a/src/utils.js b/src/utils.js index 2fb3e42cb..a1b939c9b 100644 --- a/src/utils.js +++ b/src/utils.js @@ -68,6 +68,13 @@ export const parseXml = (function () { // ------------------------------------------------------------------- +// This function does nothing and returns undefined. +// +// It is often used to swallow promise's errors. +export function noop () {} + +// ------------------------------------------------------------------- + // Ponyfill for Promise.finally(cb) export const pFinally = (promise, cb) => { return promise.then( diff --git a/src/xapi.js b/src/xapi.js index e6e64609a..fd851204f 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -9,7 +9,7 @@ import {promisify} from 'bluebird' import {Xapi as XapiBase} from 'xen-api' import {debounce} from './decorators' -import {ensureArray, parseXml, pFinally} from './utils' +import {ensureArray, noop, parseXml, pFinally} from './utils' import {JsonRpcError} from './api-errors' const debug = createDebug('xo:xapi') @@ -61,6 +61,14 @@ const getNamespaceForType = (type) => typeToNamespace[type] || type // =================================================================== +const VM_RUNNING_POWER_STATES = { + Running: true, + Paused: true +} +const isVmRunning = (vm) => VM_RUNNING_POWER_STATES[vm.power_state] + +// =================================================================== + export default class Xapi extends XapiBase { constructor (...args) { super(...args) @@ -454,6 +462,33 @@ export default class Xapi extends XapiBase { // ================================================================= + async _deleteVdi (vdiId) { + const vdi = this.getObject(vdiId) + + await this.call('VDI.destroy', vdi.$ref) + } + + async deleteVm (vmId, deleteDisks = false) { + const vm = this.getObject(vmId) + + if (isVmRunning(vm)) { + throw new Error('running VMs cannot be deleted') + } + + if (deleteDisks) { + // TODO: simplify when we start to use xen-api >= 0.5 + await Promise.all(map(vm.VBDs, ref => { + try { + return this._deleteVdi(this.getObject(ref).VDI).catch(noop) + } catch (_) {} + })) + } + + await this.call('VM.destroy', vm.$ref) + } + + // ================================================================= + async _doDockerAction (vmId, action, containerId) { const vm = this.getObject(vmId) const host = this.getObject(vm.resident_on) From a7bb4b71047f2c58a2d4e6241198c8e34e2ccebf Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 14:44:15 +0200 Subject: [PATCH 100/140] Check for patch existence in Xapi#_getOrUploadPoolPatch(). --- src/xapi.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/xapi.js b/src/xapi.js index fd851204f..e89df550a 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -423,6 +423,9 @@ export default class Xapi extends XapiBase { debug('downloading patch %s', uuid) const patchInfo = (await this._getXenUpdates()).patches[uuid] + if (!patchInfo) { + throw new Error('no such patch ' + uuid) + } const PATCH_RE = /\.xsupdate$/ const proxy = new PassThrough() From 75e3949ceca1e5fedc1e389a343e379cbb289151 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 14:49:19 +0200 Subject: [PATCH 101/140] Expose patch UUID. --- src/xapi.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/xapi.js b/src/xapi.js index e89df550a..7a750da97 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -311,6 +311,7 @@ export default class Xapi extends XapiBase { guidance: patch['after-apply-guidance'], name: patch['name-label'], url: patch['patch-url'], + uuid: patch.uuid, conflicts: map(ensureArray(patch.conflictingpatches), patch => { return patch.conflictingpatch.uuid }), From 2689fd17d02ef82ac2eca45d101bef4532dc54d4 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 14:56:06 +0200 Subject: [PATCH 102/140] Correctly forward req & res in Xo#_handleHttpRequest(). --- src/xo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xo.js b/src/xo.js index ad68d9744..97f71f3a8 100644 --- a/src/xo.js +++ b/src/xo.js @@ -456,7 +456,7 @@ export default class Xo extends EventEmitter { delete watchers[url] const {fn, data} = watcher - Bluebird.try(fn, [data]).then( + Bluebird.try(fn, [req, res, data]).then( result => { if (result != null) { res.end(JSON.stringify(result)) From 510897f6725518ad06120a8be5d0a4ac75406578 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 14:56:40 +0200 Subject: [PATCH 103/140] Display error stack if available in Xo#_handleHttpRequest(). --- src/xo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xo.js b/src/xo.js index 97f71f3a8..68e07eedd 100644 --- a/src/xo.js +++ b/src/xo.js @@ -463,7 +463,7 @@ export default class Xo extends EventEmitter { } }, error => { - console.error('HTTP request error', error) + console.error('HTTP request error', error.stack || error) if (!res.headersSent) { res.writeHead(500) From b55764db5664b534fb34c43ee6ac208a995efebc Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 15:20:59 +0200 Subject: [PATCH 104/140] More code in Xapi. --- src/api/vm.coffee | 75 ++++++++++------------------------------------- src/xapi.js | 59 +++++++++++++++++++++++++++++++++++-- 2 files changed, 72 insertions(+), 62 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 2830b75ea..ca1687064 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -637,7 +637,8 @@ exports.convert = convert #--------------------------------------------------------------------- snapshot = $coroutine ({vm, name}) -> - return $wait @getXAPI(vm).call 'VM.snapshot', vm.ref, name + snapshot = $wait @getXAPI(vm).snapshotVm(vm.ref, name) + return snapshot.$id snapshot.params = { id: { type: 'string' } @@ -768,68 +769,24 @@ exports.revert = revert #--------------------------------------------------------------------- +handleExport = (req, res, {stream, response: upstream}) -> + res.writeHead( + upstream.statusCode, + upstream.statusMessage ? '', + upstream.headers + ) + stream.pipe(res) + return + # TODO: integrate in xapi.js export_ = $coroutine ({vm, compress}) -> - compress ?= true - - xapi = @getXAPI vm - - # if the VM is running, we can't export it directly - # that's why we export the snapshot - exportRef = if vm.power_state is 'Running' - $debug 'VM is running, creating temp snapshot...' - snapshotRef = $wait xapi.call 'VM.snapshot', vm.ref, vm.name_label - # convert the template to a VM - $wait xapi.call 'VM.set_is_a_template', snapshotRef, false - - snapshotRef - else - vm.ref - - host = @getObject vm.$container - do (type = host.type) => - if type is 'pool' - host = @getObject host.master, 'host' - else unless type is 'host' - throw new Error "unexpected type: got #{type} instead of host" - - task = $wait xapi._createTask( - 'VM export via Xen Orchestra', - 'Export VM ' + vm.name_label - ) - pFinally( - xapi._watchTask(task) - .then((result) -> - $debug 'export succeeded' - return - ) - .catch((error) -> - $debug 'export failed: %j', error - return - ) - , - -> - if snapshotRef? - $debug 'deleting temp snapshot...' - xapi.deleteVm(snapshotRef, true) - - return - ) - - url = $wait @registerProxyRequest { - method: 'get' - hostname: host.address - pathname: '/export/' - query: { - session_id: xapi.sessionId - ref: exportRef - task_id: task.$ref - use_compression: if compress then 'true' else false - } - } + stream = $wait @getXAPI(vm).exportVm(vm.id, compress ? true) return { - $getFrom: url + $getFrom: $wait @registerHttpRequest(handleExport, { + stream, + $wait stream.response + }) } export_.params = { diff --git a/src/xapi.js b/src/xapi.js index 7a750da97..5c40b1ff6 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -211,8 +211,8 @@ export default class Xapi extends XapiBase { // Create a task. // // Returns the task object from the Xapi. - async _createTask (name, description = '') { - const ref = await this.call('task.create', name, description) + async _createTask (name = 'untitled task', description = '') { + const ref = await this.call('task.create', `[XO] ${name}`, description) debug('task created: %s', name) pFinally(this._watchTask(ref), () => { @@ -393,7 +393,7 @@ export default class Xapi extends XapiBase { // ----------------------------------------------------------------- async uploadPoolPatch (stream, length) { - const task = await this._createTask('Patch upload from XO') + const task = await this._createTask('Patch upload') // TODO: Update when xen-api >= 0.5 const poolMaster = this.objects.all[this._refsToUuids[this.pool.master]] @@ -472,6 +472,15 @@ export default class Xapi extends XapiBase { await this.call('VDI.destroy', vdi.$ref) } + async _snapshotVm (vm, nameLabel = vm.name_label) { + const ref = await this.call('VM.snapshot', vm.$ref, nameLabel) + + // Convert the template to a VM. + await this.call('VM.set_is_a_template', ref, false) + + return ref + } + async deleteVm (vmId, deleteDisks = false) { const vm = this.getObject(vmId) @@ -491,6 +500,50 @@ export default class Xapi extends XapiBase { await this.call('VM.destroy', vm.$ref) } + // Returns a stream to the exported VM. + async exportVm (vmId, {compress = true} = {}) { + const vm = this.getObject(vmId) + + let host + let snapshotRef + if (isVmRunning(vm)) { + host = this.getObject(vm.resident_on) + snapshotRef = await this._snapshotVm(vm) + } else { + host = this.getObject(this.pool.master) + } + + const task = await this._createTask('VM Snapshot', vm.name_label) + pFinally(this._watchTask(task), () => { + if (snapshotRef) { + this.deleteVm(snapshotRef, true) + } + }) + + const stream = got({ + hostname: host.address, + path: '/export/' + }, { + query: { + ref: snapshotRef || vm.$ref, + session_id: this.sessionId, + task_id: task.$ref, + use_compression: compress ? 'true' : 'false' + } + }) + stream.response = eventToPromise(stream, 'response') + + return stream + } + + async snapshotVm (vmId) { + return await this._getOrWaitObject( + await this._snapshotVm( + this.getObject(vmId) + ) + ) + } + // ================================================================= async _doDockerAction (vmId, action, containerId) { From a502965d193e0b849b7a0eacaa82f8c09ca3c311 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 15:29:42 +0200 Subject: [PATCH 105/140] Fix syntax. --- src/api/vm.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index ca1687064..253542509 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -785,7 +785,7 @@ export_ = $coroutine ({vm, compress}) -> return { $getFrom: $wait @registerHttpRequest(handleExport, { stream, - $wait stream.response + response: $wait stream.response }) } From 5c1611c484066b997fdb1ca81d1e6cb4ce701f68 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Mon, 25 May 2015 16:50:27 +0200 Subject: [PATCH 106/140] @autobind decorator. --- src/decorators.js | 54 +++++++++++++++++++++++++++++++ src/decorators.spec.js | 72 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 src/decorators.spec.js diff --git a/src/decorators.js b/src/decorators.js index c8d910cb3..2eee9ec38 100644 --- a/src/decorators.js +++ b/src/decorators.js @@ -1,3 +1,57 @@ +import bind from 'lodash.bind' + +// =================================================================== + +const {defineProperty} = Object + +// =================================================================== + +// See: https://github.com/jayphelps/core-decorators.js#autobind +export function autobind (target, key, { + configurable, + enumerable, + value: fn, + writable +}) { + return { + configurable, + enumerable, + + get () { + const bounded = bind(fn, this) + + defineProperty(this, key, { + configurable: true, + enumerable: false, + value: bounded, + writable: true + }) + + return bounded + }, + set (newValue) { + if (this === target) { + // New value directly set on the prototype. + delete this[key] + this[key] = newValue + } else { + // New value set on a child object. + + // Cannot use assignment because it will call the setter on + // the prototype. + defineProperty(this, key, { + configurable: true, + enumerable: true, + value: newValue, + writable: true + }) + } + } + } +} + +// ------------------------------------------------------------------- + // Debounce decorator for methods. // // See: https://github.com/wycats/javascript-decorators diff --git a/src/decorators.spec.js b/src/decorators.spec.js new file mode 100644 index 000000000..7920b6bb8 --- /dev/null +++ b/src/decorators.spec.js @@ -0,0 +1,72 @@ +/* eslint-env mocha */ + +import {expect} from 'chai' + +// =================================================================== + +import {autobind, debounce} from './decorators' + +// =================================================================== + +describe('autobind', function () { + class Foo { + @autobind + getFoo () { + return this + } + } + + it('returns a bound instance for a method', function () { + const foo = new Foo() + const {getFoo} = foo + + expect(getFoo()).to.equal(foo) + }) + + it('works with multiple instances of the same class', function () { + const foo1 = new Foo() + const foo2 = new Foo() + + const {getFoo: getFoo1} = foo1 + const {getFoo: getFoo2} = foo2 + + expect(getFoo1()).to.equal(foo1) + expect(getFoo2()).to.equal(foo2) + }) +}) + +// ------------------------------------------------------------------- + +describe('debounce', function () { + let i + + class Foo { + @debounce(1e1) + foo () { + ++i + } + } + + beforeEach(function () { + i = 0 + }) + + it('works', function (done) { + const foo = new Foo() + + expect(i).to.equal(0) + + foo.foo() + expect(i).to.equal(1) + + foo.foo() + expect(i).to.equal(1) + + setTimeout(function () { + foo.foo() + expect(i).to.equal(2) + + done() + }, 2e1) + }) +}) From 61731e2c2ef4b9672d1396130d400f220a53c26d Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 26 May 2015 11:57:49 +0200 Subject: [PATCH 107/140] Detect blocked event loop. --- package.json | 1 + src/index.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/package.json b/package.json index c1d955e11..7b28fd874 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "app-conf": "^0.3.4", "babel-runtime": "^5", "base64url": "1.0.4", + "blocked": "^1.1.0", "bluebird": "^2.9.14", "connect": "^3.3.5", "debug": "^2.1.3", diff --git a/src/index.js b/src/index.js index 5b1c828d9..94b6e6e6e 100644 --- a/src/index.js +++ b/src/index.js @@ -8,6 +8,7 @@ Bluebird.longStackTraces() import appConf from 'app-conf' import assign from 'lodash.assign' import bind from 'lodash.bind' +import blocked from 'blocked' import createConnectApp from 'connect' import eventToPromise from 'event-to-promise' import forEach from 'lodash.foreach' @@ -395,6 +396,13 @@ export default async function main (args) { return help() } + { + const debug = createLogger('xo:perf') + blocked(ms => { + debug('blocked for %sms', ms | 0) + }) + } + const config = await loadConfiguration() const webServer = await createWebServer(config.http.listen) From 8b03890f2a05c7385a63cd2c74f34572cd64c1d0 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 26 May 2015 17:59:52 +0200 Subject: [PATCH 108/140] New util extractProperty() and some tests. --- src/utils.js | 9 +++++++++ src/utils.spec.js | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 src/utils.spec.js diff --git a/src/utils.js b/src/utils.js index a1b939c9b..07171b690 100644 --- a/src/utils.js +++ b/src/utils.js @@ -21,6 +21,15 @@ export const ensureArray = (value) => { // ------------------------------------------------------------------- +// Returns the value of a property and removes it from the object. +export function extractProperty (obj, prop) { + const value = obj[prop] + delete obj[prop] + return value +} + +// ------------------------------------------------------------------- + // Generate a secure random Base64 string. export const generateToken = (function (randomBytes) { return (n = 32) => randomBytes(n).then(base64url) diff --git a/src/utils.spec.js b/src/utils.spec.js new file mode 100644 index 000000000..fb148c7e2 --- /dev/null +++ b/src/utils.spec.js @@ -0,0 +1,49 @@ +/* eslint-env mocha */ + +import {expect} from 'chai' + +// =================================================================== + +import { + ensureArray, + extractProperty +} from './utils' + +// =================================================================== + +describe('ensureArray', function () { + it('returns an empty array for undefined', function () { + expect(ensureArray(undefined)).to.eql([]) + }) + + it('returns the object itself if is already an array', function () { + const array = ['foo', 'bar', 'baz'] + + expect(ensureArray(array)).to.equal(array) + }) + + it('wrap the value in an object', function () { + const value = {} + + expect(ensureArray(value)).to.includes(value) + }) +}) + +// ------------------------------------------------------------------- + +describe('extractProperty', function () { + it('returns the value of the property', function () { + const value = {} + const obj = { prop: value } + + expect(extractProperty(obj, 'prop')).to.equal(value) + }) + + it('removes the property from the object', function () { + const value = {} + const obj = { prop: value } + + expect(extractProperty(obj, 'prop')).to.equal(value) + expect(obj).to.not.have.property('prop') + }) +}) From 26a63c4baf898c2548ac4495c49b57f5f885fe92 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Tue, 26 May 2015 19:43:51 +0200 Subject: [PATCH 109/140] optimize the stats code --- package.json | 2 ++ src/api/host.coffee | 33 ++++++++++++++++++++++++--------- src/api/vm.coffee | 37 ++++++++++++++++++++++++------------- 3 files changed, 50 insertions(+), 22 deletions(-) diff --git a/package.json b/package.json index 7b28fd874..28b2db62e 100644 --- a/package.json +++ b/package.json @@ -51,6 +51,7 @@ "lodash.bind": "^3.0.0", "lodash.clone": "^3.0.1", "lodash.difference": "^3.2.0", + "lodash.endswith": "^3.0.2", "lodash.filter": "^3.1.0", "lodash.find": "^3.0.0", "lodash.findindex": "^3.0.0", @@ -68,6 +69,7 @@ "lodash.pick": "^3.0.0", "lodash.pluck": "^3.0.2", "lodash.result": "^3.0.0", + "lodash.startswith": "^3.0.1", "make-error": "^1", "multikey-hash": "^1.0.1", "proxy-http-request": "0.1.0", diff --git a/src/api/host.coffee b/src/api/host.coffee index ec682541b..099087520 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -1,9 +1,12 @@ {$coroutine, $wait} = require '../fibers-utils' +$debug = (require 'debug') 'xo:api:vm' $request = require('bluebird').promisify(require('request')) {parseXml} = require '../utils' $forEach = require 'lodash.foreach' $find = require 'lodash.find' $findIndex = require 'lodash.findindex' +startsWith = require 'lodash.startswith' +endsWith = require 'lodash.endswith' #===================================================================== @@ -263,21 +266,33 @@ stats = $coroutine ({host}) -> throw new Error('Cannot fetch the RRDs') json = parseXml(body) + # Find index of needed objects for getting their values after cpusIndexes = [] - index = 0 - while (pos = $findIndex(json.rrd.ds, 'name', 'cpu' + index++)) isnt -1 - cpusIndexes.push(pos) pifsIndexes = [] + memoryFreeIndex = [] + memoryIndex = [] + loadIndex = [] index = 0 - while (pos = $findIndex(json.rrd.ds, 'name', 'pif_eth' + index + '_rx')) isnt -1 - pifsIndexes.push(pos) - pifsIndexes.push($findIndex(json.rrd.ds, 'name', 'pif_eth' + (index++) + '_tx')) - memoryFreeIndex = $findIndex(json.rrd.ds, 'name': 'memory_free_kib') - memoryIndex = $findIndex(json.rrd.ds, 'name': 'memory_total_kib') - loadIndex = $findIndex(json.rrd.ds, 'name': 'loadavg') + $forEach(json.rrd.ds, (value, i) -> + if startsWith(value.name, 'cpu') + cpusIndexes.push(i) + else if startsWith(value.name, 'pif_eth') && endsWith(value.name, '_tx') + pifsIndexes.push(i) + else if startsWith(value.name, 'pif_eth') && endsWith(value.name, '_rx') + pifsIndexes.push(i) + else if startsWith(value.name, 'loadavg') + loadIndex.push(i) + else if startsWith(value.name, 'memory_free_kib') + memoryFreeIndex.push(i) + else if startsWith(value.name, 'memory_total_kib') + memoryIndex.push(i) + return + ) + + $debug('After parsing JSON host') memoryFree = [] memoryUsed = [] memory = [] diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 253542509..865104172 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -4,6 +4,8 @@ $result = require 'lodash.result' $forEach = require 'lodash.foreach' $isArray = require 'lodash.isarray' $findIndex = require 'lodash.findindex' +startsWith = require 'lodash.startswith' +endsWith = require 'lodash.endswith' $request = require('bluebird').promisify(require('request')) {$coroutine, $wait} = require '../fibers-utils' @@ -977,24 +979,33 @@ stats = $coroutine ({vm}) -> throw new Error('Cannot fetch the RRDs') json = parseXml(body) + # Find index of needed objects for getting their values after cpusIndexes = [] - index = 0 - while (pos = $findIndex(json.rrd.ds, 'name', 'cpu' + index++)) isnt -1 - cpusIndexes.push(pos) vifsIndexes = [] - index = 0 - while (pos = $findIndex(json.rrd.ds, 'name', 'vif_' + index + '_rx')) isnt -1 - vifsIndexes.push(pos) - vifsIndexes.push($findIndex(json.rrd.ds, 'name', 'vif_' + (index++) + '_tx')) xvdsIndexes = [] - index = 97 # Starting to browse ascii table from 'a' to 'z' (122) - while index <= 122 and (pos = $findIndex(json.rrd.ds, 'name', 'vbd_xvd' + String.fromCharCode(index) + '_read')) isnt -1 - xvdsIndexes.push(pos) - xvdsIndexes.push($findIndex(json.rrd.ds, 'name', 'vbd_xvd' + String.fromCharCode(index++) + '_write')) + memoryFreeIndex = [] + memoryIndex = [] + index = 0 - memoryFreeIndex = $findIndex(json.rrd.ds, 'name': 'memory_internal_free') - memoryIndex = $findIndex(json.rrd.ds, 'name': 'memory') + $forEach(json.rrd.ds, (value, i) -> + if startsWith(value.name, 'cpu') + cpusIndexes.push(i) + else if startsWith(value.name, 'vif_') && endsWith(value.name, '_tx') + vifsIndexes.push(i) + else if startsWith(value.name, 'vif_') && endsWith(value.name, '_rx') + vifsIndexes.push(i) + else if startsWith(value.name, 'vbd_xvd') && endsWith(value.name, '_write') + xvdsIndexes.push(i) + else if startsWith(value.name, 'vbd_xvd') && endsWith(value.name, '_read') + xvdsIndexes.push(i) + else if startsWith(value.name, 'memory_internal_free') + memoryFreeIndex.push(i) + else if endsWith(value.name, 'memory') + memoryIndex.push(i) + + return + ) memoryFree = [] memoryUsed = [] From 337eb0f27beed34adf2d9d633ccd4e92afdb63c2 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Tue, 26 May 2015 19:57:10 +0200 Subject: [PATCH 110/140] remove useless debug --- src/api/host.coffee | 1 - 1 file changed, 1 deletion(-) diff --git a/src/api/host.coffee b/src/api/host.coffee index 099087520..713bdfae1 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -292,7 +292,6 @@ stats = $coroutine ({host}) -> return ) - $debug('After parsing JSON host') memoryFree = [] memoryUsed = [] memory = [] From da70c03845b35c9e2e59ccadd4adf258996037bd Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 27 May 2015 10:33:57 +0200 Subject: [PATCH 111/140] Use correct HTTP status code See https://tools.ietf.org/html/rfc7231#section-6.5.10 --- src/api/pool.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/pool.js b/src/api/pool.js index 44ed70f60..6f8cd6856 100644 --- a/src/api/pool.js +++ b/src/api/pool.js @@ -49,7 +49,7 @@ installPatch.resolve = { async function handlePatchUpload (req, res, {pool}) { const {headers: {['content-length']: contentLength}} = req if (!contentLength) { - res.writeHead(400) + res.writeHead(411) res.end('Content length is mandatory') return } From 94620748abbdbbe3dd03e9c1fb38e04251e7361d Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Wed, 27 May 2015 10:56:07 +0200 Subject: [PATCH 112/140] filter IOPS --- src/api/vm.coffee | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 865104172..9c50011ed 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -979,7 +979,6 @@ stats = $coroutine ({vm}) -> throw new Error('Cannot fetch the RRDs') json = parseXml(body) - # Find index of needed objects for getting their values after cpusIndexes = [] vifsIndexes = [] @@ -995,9 +994,9 @@ stats = $coroutine ({vm}) -> vifsIndexes.push(i) else if startsWith(value.name, 'vif_') && endsWith(value.name, '_rx') vifsIndexes.push(i) - else if startsWith(value.name, 'vbd_xvd') && endsWith(value.name, '_write') + else if startsWith(value.name, 'vbd_xvd') && endsWith(value.name, '_write', 14) xvdsIndexes.push(i) - else if startsWith(value.name, 'vbd_xvd') && endsWith(value.name, '_read') + else if startsWith(value.name, 'vbd_xvd') && endsWith(value.name, '_read', 13) xvdsIndexes.push(i) else if startsWith(value.name, 'memory_internal_free') memoryFreeIndex.push(i) From 5236441be03e48acd150f6070913e01bfa7acd48 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Tue, 26 May 2015 20:05:14 +0200 Subject: [PATCH 113/140] New collection! --- package.json | 2 +- src/MappedCollection.coffee | 457 --------------- src/MappedCollection.spec.coffee | 121 ---- src/api-errors.js | 4 +- src/decorators.spec.js | 6 + src/helpers.js | 367 ------------ src/helpers.spec.js | 269 --------- src/index.js | 3 +- src/spec.coffee | 929 ------------------------------- src/spec.spec-data.json | 1 - src/spec.spec.coffee | 753 ------------------------- src/xapi-objects-to-xo.js | 493 ++++++++++++++++ src/xapi.js | 92 +-- src/xo.js | 279 +++++----- 14 files changed, 650 insertions(+), 3126 deletions(-) delete mode 100644 src/MappedCollection.coffee delete mode 100644 src/MappedCollection.spec.coffee delete mode 100644 src/helpers.js delete mode 100644 src/helpers.spec.js delete mode 100644 src/spec.coffee delete mode 100644 src/spec.spec-data.json delete mode 100644 src/spec.spec.coffee create mode 100644 src/xapi-objects-to-xo.js diff --git a/package.json b/package.json index 28b2db62e..869b9a786 100644 --- a/package.json +++ b/package.json @@ -80,7 +80,7 @@ "source-map-support": "^0.2.10", "then-redis": "~1.3.0", "ws": "~0.7.1", - "xen-api": "^0.3.0", + "xen-api": "^0.5.4", "xml2js": "~0.4.6", "xo-collection": "^0.3.2" }, diff --git a/src/MappedCollection.coffee b/src/MappedCollection.coffee deleted file mode 100644 index e4c8126e9..000000000 --- a/src/MappedCollection.coffee +++ /dev/null @@ -1,457 +0,0 @@ -{EventEmitter: $EventEmitter} = require 'events' - -$assign = require 'lodash.assign' -$filter = require 'lodash.filter' -$forEach = require 'lodash.foreach' -$getKeys = require 'lodash.keys' -$isArray = require 'lodash.isarray' -$isEmpty = require 'lodash.isempty' -$isFunction = require 'lodash.isfunction' -$isObject = require 'lodash.isobject' -$isString = require 'lodash.isstring' -$map = require 'lodash.map' - -{mapInPlace: $mapInPlace, wrap: $wrap} = require './utils' - -#===================================================================== - -class $MappedCollection extends $EventEmitter - - # The dispatch function is called whenever a new item has to be - # processed and returns the name of the rule to use. - # - # To change the way it is dispatched, just override this it. - dispatch: -> - (@genval and (@genval.rule ? @genval.type)) ? 'unknown' - - # This function is called when an item has been dispatched to a - # missing rule. - # - # The default behavior is to throw an error but you may instead - # choose to create a rule: - # - # collection.missingRule = collection.rule - missingRule: (name) -> - throw new Error "undefined rule “#{name}”" - - # This function is called when the new generator of an existing item has been - # matched to a different rule. - # - # The default behavior is to throw an error as it usually indicates a bug but - # you can ignore it. - ruleConflict: (rule, item) -> - throw new Error "the item “#{item.key}” was of rule “#{item.rule}” "+ - "but matches to “#{rule}”" - - constructor: -> - # Items are stored here indexed by key. - # - # The prototype of this object is set to `null` to avoid pollution - # from enumerable properties of `Object.prototype` and the - # performance hit of `hasOwnProperty o`. - @_byKey = Object.create null - - # Hooks are stored here indexed by moment. - @_hooks = { - beforeDispatch: [] - beforeUpdate: [] - beforeSave: [] - afterRule: [] - } - - # Rules are stored here indexed by name. - # - # The prototype of this object is set to `null` to avoid pollution - # from enumerable properties of `Object.prototype` and to be able - # to use the `name of @_rules` syntax. - @_rules = Object.create null - - # Register a hook to run at a given point. - # - # A hook receives as parameter an event object with the following - # properties: - # - `preventDefault()`: prevents the next default action from - # happening; - # - `stopPropagation()`: prevents other hooks from being run. - # - # Note: if a hook throws an exception, `event.stopPropagation()` - # then `event.preventDefault()` will be called and the exception - # will be forwarded. - # - # # Item hook - # - # Valid items related moments are: - # - beforeDispatch: even before the item has been dispatched; - # - beforeUpdate: after the item has been dispatched but before - # updating its value. - # - beforeSave: after the item has been updated. - # - # An item hook is run in the context of the current item. - # - # # Rule hook - # - # Valid rules related moments are: - # - afterRule: just after a new rule has been defined (even - # singleton). - # - # An item hook is run in the context of the current rule. - hook: (name, hook) -> - # Allows a nicer syntax for CoffeeScript. - if $isObject name - # Extracts the name and the value from the first property of the - # object. - do -> - object = name - return for own name, hook of object - - hooks = @_hooks[name] - - @_assert( - hooks? - "invalid hook moment “#{name}”" - ) - - hooks.push hook - - # Register a new singleton rule. - # - # See the `rule()` method for more information. - item: (name, definition) -> - # Creates the corresponding rule. - rule = @rule name, definition, true - - # Creates the singleton. - item = { - rule: rule.name - key: rule.key() # No context because there is not generator. - val: undefined - } - @_updateItems [item], true - - # Register a new rule. - # - # If the definition is a function, it will be run in the context of - # an item-like object with the following properties: - # - `key`: the definition for the key of this item; - # - `val`: the definition for the value of this item. - # - # Warning: The definition function is run only once! - rule: (name, definition, singleton = false) -> - # Allows a nicer syntax for CoffeeScript. - if $isObject name - # Extracts the name and the definition from the first property - # of the object. - do -> - object = name - return for own name, definition of object - - @_assert( - name not of @_rules - "the rule “#{name}” is already defined" - ) - - # Extracts the rule definition. - if $isFunction definition - ctx = { - name - key: undefined - data: undefined - val: undefined - singleton - } - definition.call ctx - else - ctx = { - name - key: definition?.key - data: definition?.data - val: definition?.val - singleton - } - - # Runs the `afterRule` hook and returns if the registration has - # been prevented. - return unless @_runHook 'afterRule', ctx - - {key, data, val} = ctx - - # The default key. - key ?= if singleton then -> name else -> @genkey - - # The default value. - val ?= -> @genval - - # Makes sure `key` is a function for uniformity. - key = $wrap key unless $isFunction key - - # Register the new rule. - @_rules[name] = { - name - key - data - val - singleton - } - - #-------------------------------- - - get: (keys, ignoreMissingItems = false) -> - if keys is undefined - items = $map @_byKey, (item) -> item.val - else - items = @_fetchItems keys, ignoreMissingItems - $mapInPlace items, (item) -> item.val - - if $isString keys then items[0] else items - - getRaw: (keys, ignoreMissingItems = false) -> - if keys is undefined - item for _, item of @_byKey - else - items = @_fetchItems keys, ignoreMissingItems - - if $isString keys then items[0] else items - - remove: (keys, ignoreMissingItems = false) -> - @_removeItems (@_fetchItems keys, ignoreMissingItems) - - removeWithPredicate: (predicate, thisArg) -> - items = ($filter @_byKey, predicate, thisArg) - @_removeItems items - - set: (items, {add, update, remove} = {}) -> - add = true unless add? - update = true unless update? - remove = false unless remove? - - itemsToAdd = {} - itemsToUpdate = {} - - itemsToRemove = {} - $assign itemsToRemove, @_byKey if remove - - $forEach items, (genval, genkey) => - item = { - rule: undefined - key: undefined - data: undefined - val: undefined - genkey - genval - } - - return unless @_runHook 'beforeDispatch', item - - # Searches for a rule to handle it. - ruleName = @dispatch.call item - rule = @_rules[ruleName] - - unless rule? - @missingRule ruleName - - # If `missingRule()` has not created the rule, just skip this - # item. - rule = @_rules[ruleName] - return unless rule? - - # Checks if this is a singleton. - @_assert( - not rule.singleton - "cannot add items to singleton rule “#{rule.name}”" - ) - - # Computes its key. - key = rule.key.call item - - @_assert( - $isString key - "the key “#{key}” is not a string" - ) - - # Updates known values. - item.rule = rule.name - item.key = key - - if key of @_byKey - # Marks this item as not to be removed. - delete itemsToRemove[key] - - if update - # Fetches the existing entry. - prev = @_byKey[key] - - # Checks if there is a conflict in rules. - unless item.rule is prev.rule - @ruleConflict item.rule, prev - item.prevRule = prev.rule - else - delete item.prevRule - - # Gets its previous data/value. - item.data = prev.data - item.val = prev.val - - # Registers the item to be updated. - itemsToUpdate[key] = item - - # Note: an item will be updated only once per `set()` and - # only the last generator will be used. - else - if add - - # Registers the item to be added. - itemsToAdd[key] = item - return - - # Adds items. - @_updateItems itemsToAdd, true - - # Updates items. - @_updateItems itemsToUpdate - - # Removes any items not seen (iff `remove` is true). - @_removeItems itemsToRemove - - # Forces items to update their value. - touch: (keys) -> - @_updateItems (@_fetchItems keys, true) - - #-------------------------------- - - _assert: (cond, message) -> - throw new Error message unless cond - - # Emits item related event. - _emitEvent: (event, items) -> - getRule = if event is 'exit' - (item) -> item.prevRule or item.rule - else - (item) -> item.rule - - byRule = Object.create null - - # One per item. - $forEach items, (item) => - @emit "key=#{item.key}", event, item - - (byRule[getRule item] ?= []).push item - - return - - # One per rule. - @emit "rule=#{rule}", event, byRule[rule] for rule of byRule - - # One for everything. - @emit 'any', event, items - - _fetchItems: (keys, ignoreMissingItems = false) -> - unless $isArray keys - keys = if $isObject keys then $getKeys keys else [keys] - - items = [] - for key in keys - item = @_byKey[key] - if item? - items.push item - else - @_assert( - ignoreMissingItems - "no item with key “#{key}”" - ) - items - - _removeItems: (items) -> - return if $isEmpty items - - $forEach items, (item) => - delete @_byKey[item.key] - return - - @_emitEvent 'exit', items - - - # Runs hooks for the moment `name` with the given context and - # returns false if the default action has been prevented. - _runHook: (name, ctx) -> - hooks = @_hooks[name] - - # If no hooks, nothing to do. - return true unless hooks? and (n = hooks.length) isnt 0 - - # Flags controlling the run. - notStopped = true - actionNotPrevented = true - - # Creates the event object. - event = { - stopPropagation: -> notStopped = false - - # TODO: Should `preventDefault()` imply `stopPropagation()`? - preventDefault: -> actionNotPrevented = false - } - - i = 0 - while notStopped and i < n - hooks[i++].call ctx, event - - # TODO: Is exception handling necessary to have the wanted - # behavior? - - return actionNotPrevented - - _updateItems: (items, areNew) -> - return if $isEmpty items - - # An update is similar to an exit followed by an enter. - @_removeItems items unless areNew - - $forEach items, (item) => - return unless @_runHook 'beforeUpdate', item - - {rule: ruleName} = item - - # Computes its value. - do => - # Item is not passed directly to function to avoid direct - # modification. - # - # This is not a true security but better than nothing. - proxy = Object.create item - - updateValue = (parent, prop, def) -> - if not $isObject def - parent[prop] = def - else if $isFunction def - parent[prop] = def.call proxy, parent[prop] - else if $isArray def - i = 0 - n = def.length - - current = parent[prop] ?= new Array n - while i < n - updateValue current, i, def[i] - ++i - else - # It's a plain object. - current = parent[prop] ?= {} - for i of def - updateValue current, i, def[i] - - updateValue item, 'data', @_rules[ruleName].data - updateValue item, 'val', @_rules[ruleName].val - - unless @_runHook 'beforeSave', item - # FIXME: should not be removed, only not saved. - delete @_byKey[item.key] - - return - - # Really inserts the items and trigger events. - $forEach items, (item) => - @_byKey[item.key] = item - return - @_emitEvent 'enter', items - -#===================================================================== - -module.exports = {$MappedCollection} diff --git a/src/MappedCollection.spec.coffee b/src/MappedCollection.spec.coffee deleted file mode 100644 index 64b716054..000000000 --- a/src/MappedCollection.spec.coffee +++ /dev/null @@ -1,121 +0,0 @@ -{expect: $expect} = require 'chai' - -$sinon = require 'sinon' - -#--------------------------------------------------------------------- - -{$MappedCollection} = require './MappedCollection' - -#===================================================================== - -describe '$MappedCollection', -> - - # Shared variables. - collection = null - - beforeEach -> - collection = new $MappedCollection() - - #------------------------------------------------------------------- - - describe '#dispatch()', -> - - # Test data. - beforeEach -> - collection.rule test: {} - - #------------------------------ - - it 'should have genkey and genval', -> - collection.dispatch = -> - $expect(@genkey).to.equal 'a key' - $expect(@genval).to.equal 'a value' - - 'test' - - collection.set { - 'a key': 'a value' - } - - #------------------------------ - - it 'should be used to dispatch an item', -> - collection.dispatch = -> 'test' - - collection.set [ - 'any value' - ] - - $expect(collection.getRaw('0').rule).to.equal 'test' - - #------------------------------------------------------------------- - - describe 'item hooks', -> - - # Test data. - beforeEach -> - collection.rule test: {} - - #------------------------------ - - it 'should be called in the correct order', -> - - beforeDispatch = $sinon.spy() - collection.hook {beforeDispatch} - - dispatcher = $sinon.spy -> - $expect(beforeDispatch.called).to.true - - # It still is a dispatcher. - 'test' - collection.dispatch = dispatcher - - beforeUpdate = $sinon.spy -> - $expect(dispatcher.called).to.true - collection.hook {beforeUpdate} - - beforeSave = $sinon.spy -> - $expect(beforeUpdate.called).to.true - collection.hook {beforeSave} - - collection.set [ - 'any value' - ] - - $expect(beforeSave.called).to.be.true - - #------------------------------------------------------------------- - - describe 'adding new items', -> - - beforeEach -> - collection.rule test: {} - collection.dispatch = -> 'test' - - #------------------------------ - - it 'should trigger three `enter` events', -> - keySpy = $sinon.spy() - ruleSpy = $sinon.spy() - anySpy = $sinon.spy() - - collection.on 'key=a key', keySpy - collection.on 'rule=test', ruleSpy - collection.on 'any', anySpy - - collection.set { - 'a key': 'a value' - } - - item = collection.getRaw 'a key' - - # TODO: items can be an array or a object (it is not defined). - $expect(keySpy.args).to.deep.equal [ - ['enter', item] - ] - $expect(ruleSpy.args).to.deep.equal [ - ['enter', [item]] - ] - $expect(anySpy.args).to.deep.equal [ - ['enter', {'a key': item}] - ] diff --git a/src/api-errors.js b/src/api-errors.js index 8cead5c73..d4821b7d4 100644 --- a/src/api-errors.js +++ b/src/api-errors.js @@ -16,8 +16,8 @@ export class NotImplemented extends JsonRpcError { // ------------------------------------------------------------------- export class NoSuchObject extends JsonRpcError { - constructor (data) { - super('no such object', 1, data) + constructor (id, type) { + super('no such object', 1, {id, type}) } } diff --git a/src/decorators.spec.js b/src/decorators.spec.js index 7920b6bb8..376477045 100644 --- a/src/decorators.spec.js +++ b/src/decorators.spec.js @@ -23,6 +23,12 @@ describe('autobind', function () { expect(getFoo()).to.equal(foo) }) + it('returns the same bound instance each time', function () { + const foo = new Foo() + + expect(foo.getFoo).to.equal(foo.getFoo) + }) + it('works with multiple instances of the same class', function () { const foo1 = new Foo() const foo2 = new Foo() diff --git a/src/helpers.js b/src/helpers.js deleted file mode 100644 index b46e8e152..000000000 --- a/src/helpers.js +++ /dev/null @@ -1,367 +0,0 @@ -// FIXME: This file name should reflect what's inside! - -// =================================================================== - -import $clone from 'lodash.clone' -import $forEach from 'lodash.foreach' -import $isArray from 'lodash.isarray' -import $isEmpty from 'lodash.isempty' -import $isFunction from 'lodash.isfunction' - -// =================================================================== - -const $asArray = (val) => $isArray(val) ? val : [val] -const $asFunction = (val) => $isFunction(val) ? val : () => val - -const $first = (collection, defaultValue) => { - const {length} = collection - if (length == null) { - for (let key in collection) { - return collection[key] - } - } else if (length) { - return collection[0] - } - - // Nothing was found, returns the `def` value. - return defaultValue -} - -const $removeValue = (array, value) => { - const index = array.indexOf(value) - if (index === -1) { - return false - } - - array.splice(index, 1) - return true -} - -// ------------------------------------------------------------------- - -// TODO: currently the watch can be updated multiple times per -// “$MappedCollection.set()” which is inefficient: it should be -// possible to address that. - -const $watch = (collection, { - // Key(s) of the “remote” objects watched. - // - // If it is a function, it is evaluated in the scope of the “current” - // object. (TODO) - // - // Default: undefined - keys, - - // Alias for `keys`. - key, - - // Rule(s) of the “remote” objects watched. - // - // If it is a function, it is evaluated in the scope of the “current” - // object. (TODO) - // - // Note: `key`/`keys` and `rule`/`rules` cannot be used both. - // - // Default: undefined - rules, - - // Alias for `rules`. - rule, - - // Value to add to the set. - // - // If it is a function, it is evaluated in the scope of the “remote” - // object. - // - // Default: -> @val - val, - - // Predicates the “remote” object must fulfill to be used. - // - // Default: -> true - if: cond, - - // Function evaluated in the scope of the “remote” object which - // returns the key of the object to update (usually the current one). - // - // TODO: Does it make sense to return an array? - // - // Default: undefined - bind, - - // Initial value. - init, - - // Function called when a loop is detected. - // - // Usually it is used to either throw an exception or do nothing to - // stop the loop. - // - // Note: The function may also returns `true` to force the processing - // to continue. - loopDetected = () => { throw new Error('loop detected') } -}, fn) => { - val = val == null ? - // The default value is simply the value of the item. - function () { return this.val } : - $asFunction(val) - - // Method allowing the cleanup when the helper is no longer used. - // cleanUp = -> // TODO: noop for now. - - // Keys of items using the current helper. - const consumers = Object.create(null) - - // Current values. - const values = Object.create(null) - values.common = init - - // The number of nested processing for this watcher is counted to - // avoid an infinite loop. - let loops = 0 - - let updating = false - - const process = (event, items) => { - if (updating) return - - // Values are grouped by namespace. - const valuesByNamespace = Object.create(null) - - $forEach(items, (item) => { - if (cond && !cond.call(item)) return - - const namespace = (function () { - if (bind) { - const key = bind.call(item) - - return key && `$${key}` - } else { - return 'common' - } - })() - - // If not namespace, ignore this item. - if (!namespace) return - - ( - valuesByNamespace[namespace] || - (valuesByNamespace[namespace] = []) - ).push(val.call(item)) - }) - - // Stops here if no values were computed. - if ($isEmpty(valuesByNamespace)) return - - if (loops && loopDetected(loops) !== true) return - const previousLoops = loops++ - - // For each namespace. - $forEach(valuesByNamespace, (values_, namespace) => { - // Updates the value. - const value = values[namespace] - - const ctx = { - // TODO: test the $clone - value: value == null ? $clone(init) : value - } - const changed = event === 'enter' ? - fn.call(ctx, values_, {}) : - fn.call(ctx, {}, values_) - - // Notifies watchers unless it is known the value has not - // changed. - if (changed !== false) { - values[namespace] = ctx.value - updating = true - if (namespace === 'common') { - collection.touch(consumers) - } else { - collection.touch(namespace.substr(1)) - } - updating = false - } - }) - - loops = previousLoops - } - - const processOne = (event, item) => process(event, [item]) - - // Sets up the watch based on the provided criteria. - // - // TODO: provides a way to clean this when no longer used. - keys = $asArray(keys || key || []) - rules = $asArray(rules || rule || []) - if (!$isEmpty(keys)) { - // Matching is done on the keys. - - if (!$isEmpty(rules)) { - throw new Error('cannot use both keys and rules') - } - - $forEach(keys, key => { - collection.on(`key=${key}`, processOne) - }) - - // Handles existing items. - process('enter', collection.getRaw(keys, true)) - } else if (!$isEmpty(rules)) { - // Matching is done the rules. - - $forEach(rules, rule => { - collection.on(`rule=${rule}`, process) - }) - - // TODO: Inefficient, is there another way? - rules = (function (rules) { // Minor optimization. - const tmp = Object.create(null) - for (let rule of rules) { - tmp[rule] = true - } - return tmp - })(rules) - $forEach(collection.getRaw(), item => { - if (rules[item.rule]) { - processOne('enter', item) - } - }) - } else { - // No matching done. - - collection.on('any', process) - - // Handles existing items. - process('enter', collection.getRaw()) - } - - // Creates the generator: the function which items will used to - // register to this watcher and to get the current value. - const generator = function () { - const {key} = this - - // Register this item has a consumer. - consumers[key] = true - - // Returns the value for this item if any or the common value. - const namespace = `$${key}` - return (namespace in values) ? - values[namespace] : - values.common - } - - // Creates a helper to unregister an item from this watcher. - generator.unregister = function () { - const {key} = this - delete consumers[key] - delete values[`$${key}`] - } - - // Creates a helper to get the value without using an item. - generator.raw = (key) => values[key != null ? `$${key}` : 'common'] - - // Returns the generator. - return generator -} - -// =================================================================== - -export const $map = function (options) { - options.init = Object.create(null) - - return $watch(this, options, function (entered, exited) { - let changed = false - - $forEach(entered, ([key, value]) => { - if (this.value[key] !== value) { - this.value[key] = value - changed = true - } - }) - $forEach(exited, ([key, value]) => { - if (key in this.value) { - delete this.value[key] - changed = true - } - }) - - return changed - }) -} - -// ------------------------------------------------------------------- - -// Creates a set of value from various items. -export const $set = function (options) { - // Contrary to other helpers, the default value is the key. - if (!options.val) { - options.val = function () { return this.key } - } - - options.init = [] - - return $watch(this, options, function (entered, exited) { - let changed = false - - $forEach(entered, (value) => { - if (this.value.indexOf(value) === -1) { - this.value.push(value) - changed = true - } - }) - - $forEach(exited, (value) => { - if ($removeValue(this.value, value)) { - changed = true - } - }) - - return changed - }) -} - -// ------------------------------------------------------------------- - -export const $sum = function (options) { - if (!options.init) { - options.init = 0 - } - - return $watch(this, options, function (entered, exited) { - const prev = this.value - - $forEach(entered, (value) => { this.value += value }) - $forEach(exited, (value) => { this.value -= value }) - - return this.value !== prev - }) -} - -// ------------------------------------------------------------------- - -// Uses a value from another item. -// -// Important note: Behavior is not specified when binding to multiple -// items. -export const $val = function (options) { - // The default value. - const def = options.default - delete options.default - - if (!options.init) { - options.init = def - } - - // Should the last value be kept instead of returning to the default - // value when no items are available! - const keepLast = !!options.keepLast - delete options.keepLast - - return $watch(this, options, function (entered, exited) { - const prev = this.value - - this.value = $first(entered, keepLast ? this.value : def) - - return this.value !== prev - }) -} diff --git a/src/helpers.spec.js b/src/helpers.spec.js deleted file mode 100644 index 363e8e8e7..000000000 --- a/src/helpers.spec.js +++ /dev/null @@ -1,269 +0,0 @@ -/* eslint-env mocha */ - -import $bind from 'lodash.bind' -import {expect as $expect} from 'chai' - -import {$MappedCollection} from './MappedCollection' -import * as $nonBindedHelpers from './helpers' - -// Enable source maps support for traces. -import sourceMapSupport from 'source-map-support' -sourceMapSupport.install() - -// =================================================================== - -describe('Helper', () => { - // Shared variables. - // let $set - // let $val - let $sum - let collection - - beforeEach(() => { - // Creates the collection. - collection = new $MappedCollection() - - // Dispatcher used for tests. - collection.dispatch = function () { return this.genkey.split('.')[0] } - - // Missing rules should be automatically created. - collection.missingRule = collection.rule - - // // Monkey patch the collection to see all emitted events. - // { - // const {emit} = collection - // collection.emit = (...args) => { - // console.log(...args) - // emit.call(collection, ...args) - // } - // } - - // Binds helpers to this collection. - // $set = $bind($nonBindedHelpers.$set, collection) - // $val = $bind($nonBindedHelpers.$val, collection) - $sum = $bind($nonBindedHelpers.$sum, collection) - }) - - // ----------------------------------------------------------------- - - // All helpers share the same logical code, we need only to test one - // extensively and test the others basically. - // - // $sum was chosen because it is the simplest helper to test. - describe('$sum', () => { - it('with single key', () => { - collection.set({ foo: 1 }) - - collection.item('sum', function () { - this.val = $sum({ - key: 'foo' - }) - }) - - $expect(collection.get('sum')).to.equal(1) - - collection.set({ foo: 2 }) - - $expect(collection.get('sum')).to.equal(2) - - collection.remove('foo') - - $expect(collection.get('sum')).to.equal(0) - }) - - it('with multiple keys', () => { - collection.set({ - foo: 1, - bar: 2 - }) - - collection.item('sum', function () { - this.val = $sum({ - keys: ['foo', 'bar'] - }) - }) - - $expect(collection.get('sum')).to.equal(3) - - collection.set({ bar: 3 }) - - $expect(collection.get('sum')).to.equal(4) - - collection.remove('foo') - - $expect(collection.get('sum')).to.equal(3) - }) - - // FIXME: This test fails but this feature is not used. - it.skip('with dynamic keys', () => { - collection.set({ - foo: 1, - bar: 2 - }) - - collection.rule('sum', function () { - this.val = $sum({ - key: function () { return this.genkey.split('.')[1] } - }) - }) - collection.set({ - 'sum.foo': null, - 'sum.bar': null - }) - - $expect(collection.get('sum.foo')).to.equal(1) - $expect(collection.get('sum.bar')).to.equal(2) - - collection.remove('bar') - - $expect(collection.get('sum.foo')).to.equal(1) - $expect(collection.get('sum.bar')).to.equal(0) - }) - - it('with single rule', () => { - collection.set({ - 'foo.1': 1, - 'foo.2': 2 - }) - - collection.item('sum', function () { - this.val = $sum({ - rule: 'foo' - }) - }) - - $expect(collection.get('sum')).to.equal(3) - - collection.set({ 'foo.2': 3 }) - - $expect(collection.get('sum')).to.equal(4) - - collection.remove('foo.1') - - $expect(collection.get('sum')).to.equal(3) - }) - - it('with multiple rules', () => { - collection.set({ - 'foo': 1, - 'bar.1': 2, - 'bar.2': 3 - }) - - collection.item('sum', function () { - this.val = $sum({ - rules: ['foo', 'bar'] - }) - }) - - $expect(collection.get('sum')).to.equal(6) - - collection.set({ 'bar.1': 3 }) - - $expect(collection.get('sum')).to.equal(7) - - collection.remove('bar.2') - - $expect(collection.get('sum')).to.equal(4) - }) - - it('with bind', () => { - collection.set({ - 'foo': { - sum: 2, // This item will participate to `sum.2`. - val: 1 - }, - 'bar': { - sum: 1, // This item will participate to `sum.1`. - val: 2 - } - }) - - collection.rule('sum', function () { - this.val = $sum({ - bind: function () { - const id = this.val.sum - - return id && `sum.${id}` - }, - val: function () { return this.val.val } - }) - }) - collection.set({ - 'sum.1': null, - 'sum.2': null - }) - - $expect(collection.get('sum.1')).to.equal(2) - $expect(collection.get('sum.2')).to.equal(1) - - collection.set({ - 'foo': { - sum: 1, - val: 3 - } - }) - - $expect(collection.get('sum.1')).to.equal(5) - $expect(collection.get('sum.2')).to.equal(0) - - collection.remove('bar') - - $expect(collection.get('sum.1')).to.equal(3) - $expect(collection.get('sum.2')).to.equal(0) - }) - - it('with predicate', () => { - collection.set({ - foo: 1, - bar: 2, - baz: 3 - }) - - collection.item('sum', function () { - this.val = $sum({ - if: function () { return /^b/.test(this.rule) } - }) - }) - - $expect(collection.get('sum')).to.equal(5) - - collection.set({ foo: 4 }) - - $expect(collection.get('sum')).to.equal(5) - - collection.set({ bar: 5 }) - - $expect(collection.get('sum')).to.equal(8) - - collection.remove('baz') - - $expect(collection.get('sum')).to.equal(5) - }) - - it('with initial value', () => { - collection.set({ foo: 1 }) - - collection.item('sum', function () { - this.val = $sum({ - key: 'foo', - init: 2 - }) - }) - - $expect(collection.get('sum')).to.equal(3) - - collection.set({ foo: 2 }) - - $expect(collection.get('sum')).to.equal(4) - - collection.remove('foo') - - $expect(collection.get('sum')).to.equal(2) - }) - }) - -// TODO: -// - dynamic keys -// - dynamic rules -}) diff --git a/src/index.js b/src/index.js index 94b6e6e6e..2f6823d9d 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,5 @@ import createLogger from 'debug' const debug = createLogger('xo:main') -const debugPlugin = createLogger('xo:plugin') import Bluebird from 'bluebird' Bluebird.longStackTraces() @@ -81,6 +80,8 @@ async function loadConfiguration () { // =================================================================== +const debugPlugin = createLogger('xo:plugin') + const loadPlugin = Bluebird.method(function (pluginConf, pluginName) { debugPlugin('loading %s', pluginName) diff --git a/src/spec.coffee b/src/spec.coffee deleted file mode 100644 index 002075130..000000000 --- a/src/spec.coffee +++ /dev/null @@ -1,929 +0,0 @@ -$forEach = require 'lodash.foreach' -$isArray = require 'lodash.isarray' -$isObject = require 'lodash.isobject' -$xml2js = require 'xml2js' - -$helpers = require './helpers' -{parseXml: $parseXML} = require './utils' - -#===================================================================== - -$isVMRunning = -> - return switch @val.power_state - when 'Paused', 'Running' - true - else - false - -$isHostRunning = -> @val.power_state is 'Running' - -$isTaskLive = -> @val.status is 'pending' or @val.status is 'cancelling' - -$retrieveTags = -> [] # TODO - -$toTimestamp = (date) -> - # Weird behavior from the XAPI. - return null if date is '1969-12-31T23:00:00.000Z' - - return if date? - Math.round (Date.parse date) / 1000 - else - null - -#===================================================================== - -module.exports = -> - - # Binds the helpers to the collection. - { - $set - $sum - $val - } = do => - helpers = {} - helpers[name] = fn.bind this for name, fn of $helpers - helpers - - collection = this - # do (emit = collection.emit) -> - # collection.emit = (event, items) -> - # console.log event - # emit.call collection, event, items - - $link = (keyFn, valFn = (-> @val)) -> - keyPerItem = Object.create null - listenerPerItem = Object.create null - valuePerItem = Object.create null - updating = false - - -> - {key} = this - - # Gets the key of the remote object. - remoteKey = keyFn.call this - - keyHasChanged = remoteKey isnt keyPerItem[key] - - if keyHasChanged - keyPerItem[key] = remoteKey - else - # Returns the value if already defined. - return valuePerItem[key] if key of valuePerItem - - eventName = "key=#{remoteKey}" - listener = listenerPerItem[key] - - if listener and keyHasChanged - collection.remove eventName, listener - listener = null - - # Special case for `OpaqueRef:NULL`. - if remoteKey is 'OpaqueRef:NULL' - return valuePerItem[key] = null - - unless listener - listener = (event, item) -> - # If the events are due to an update of this link or if the item is - # exiting, just returns. - return if updating or event isnt 'enter' - - # Register its value. - valuePerItem[key] = valFn.call item - - # Force the object to update. - try - updating = true - collection.touch key - finally - updating = false - collection.on eventName, listener - - # Tries to find the remote object in the collection. - try - return valuePerItem[key] = valFn.call (collection.getRaw remoteKey) - - # Returns `null` for now. - valuePerItem[key] = null - - $map = (valFn) -> - map = Object.create null - subscribers = Object.create null - updating = false - - # First, initializes the map with existing items. - $forEach collection.getRaw(), (item) -> - val = valFn.call item - map[val[0]] = val[1] if val - return - - # Listens to any new item. - collection.on 'any', (event, items) -> - # If the events are due to an update of this map or if items are exiting, - # just returns. - return if updating or event isnt 'enter' - - # No need to trigger an update if nothing has changed. - changed = false - - $forEach items, (item) -> - val = valFn.call item - if val and map[val[0]] isnt val[1] - changed = true - map[val[0]] = val[1] - return - - if changed - try - updating = true - collection.touch subscribers - finally - updating = false - - generator = -> - subscribers[@key] = true - map - generator.unsubscribe = -> - delete subscribers[@key] - - generator - - # Shared watchers. - UUIDsToKeys = $map -> - {UUID} = @val - return false unless UUID - [UUID, "#{@key}"] - messages = $set { - rule: 'message' - bind: -> @val.$object or @val.poolRef - } - - # Classes in XAPI are not always delivered with the same case, - # therefore a map is needed to make sure they always map to the same - # rule. - rulesMap = {} - - # Defines which rule should be used for this item. - # - # Note: If the rule does not exists, a temporary item is created. FIXME - @dispatch = -> - {$type: type} = @genval - - # Normalizes the type. - type = rulesMap[type.toLowerCase()] ? type - - # Subtypes handling for VMs. - if type is 'VM' - return 'VM-controller' if @genval.is_control_domain - return 'VM-snapshot' if @genval.is_a_snapshot - return 'VM-template' if @genval.is_a_template - - type - - # Missing rules should be created. - @missingRule = (name) -> - @rule(name, -> - @key = -> @genval.id - @val = -> @genval - ) - - # Rule conflicts are possible (e.g. VM-template to VM). - @ruleConflict = ( -> ) - - # Used to apply common definition to rules. - @hook afterRule: -> - # Registers this rule in the map. - rulesMap[@name.toLowerCase()] = @name - - # TODO: explain. - return unless @val? - - unless $isObject @val - throw new Error 'the value should be an object' - - # Injects various common definitions. - @val.type = @name - if @singleton - @val.id = @val.ref = -> @key - else - # This definition are for non singleton items only. - @key = -> @genval.$ref - @val.id = -> @genval.$id - @val.UUID = -> @genval.uuid - @val.ref = -> @genval.$ref - @val.poolRef = -> @genval.$pool.$ref - @val.$poolId = -> @genval.$pool.$id - - # Main objects all can have associated messages and tags. - if @name in ['host', 'pool', 'SR', 'VM', 'VM-controller'] - @val.messages = messages - - @val.tags = $retrieveTags - - # Helper to create multiple rules with the same definition. - rules = (rules, definition) => - @rule rule, definition for rule in rules - - #=================================================================== - - # An item is equivalent to a rule but one and only one instance of - # this rule is created without any generator. - @item xo: -> - @val = { - - # TODO: Maybe there should be high-level hosts: those who do not - # belong to a pool. - - pools: $set { - rule: 'pool' - } - - $CPUs: $sum { - rule: 'host' - val: -> +(@val.CPUs.cpu_count) - } - - $vCPUs: $sum { - rule: 'VM' - val: -> @val.CPUs.number - if: $isVMRunning - } - - # Do not work due to problem in host rule. - $memory: { - usage: $sum { - rule: 'host' - if: $isHostRunning - val: -> @val.memory.usage - } - size: $sum { - rule: 'host' - if: $isHostRunning - val: -> @val.memory.size - } - } - - # Maps the UUIDs to keys (i.e. opaque references). - $UUIDsToKeys: UUIDsToKeys - } - - #------------------------------------------------------------------- - - @rule pool: -> - @val = { - name_label: -> @genval.name_label - - name_description: -> @genval.name_description - - SRs: $set { - rule: 'SR' - bind: -> @val.$container - } - - default_SR: -> - SR = @genval.default_SR - if SR is 'OpaqueRef:NULL' - null - else - SR - - HA_enabled: -> @genval.ha_enabled - - hosts: $set { - rule: 'host' - bind: -> @genval.$pool.$ref - } - - master: -> @genval.master - - networks: $set { - rule: 'network' - bind: -> @genval.$pool.$ref - } - - templates: $set { - rule: 'VM-template' - bind: -> @val.$container - } - - VMs: $set { - rule: 'VM' - bind: -> @val.$container - } - - $running_hosts: $set { - rule: 'host' - bind: -> @genval.$pool.$ref - if: $isHostRunning - } - - $running_VMs: $set { - rule: 'VM' - bind: -> @genval.$pool.$ref - if: $isVMRunning - } - - $VMs: $set { - rule: 'VM' - bind: -> @genval.$pool.$ref - } - - patches: $set { - rule: 'pool_patch' - bind: -> @genval.$pool.$ref - } - } - - #------------------------------------------------------------------- - - @rule host: -> - # Private properties used to helps construction. - @data = { - metrics: $link -> @genval.metrics - } - - @val = { - name_label: -> @genval.name_label - - name_description: -> @genval.name_description - - address: -> @genval.address - - controller: $val { - rule: 'VM-controller' - bind: -> @val.$container - val: -> @key - } - - bios_strings: -> @genval.bios_strings - - CPUs: -> @genval.cpu_info - - enabled: -> @genval.enabled - - current_operations: -> @genval.current_operations - - hostname: -> @genval.hostname - - iSCSI_name: -> @genval.other_config?.iscsi_iqn ? null - - memory: -> - {metrics} = @data - if metrics - { - usage: +metrics.memory_total - metrics.memory_free - size: +metrics.memory_total - } - else - { - usage: 0 - size: 0 - } - - patches: -> @genval.patches - - power_state: -> - if @data.metrics?.live - 'Running' - else - 'Halted' - - # Local SRs are handled directly in `SR.$container`. - SRs: $set { - rule: 'SR' - bind: -> @val.$container - } - - # What are local templates? - templates: $set { - rule: 'VM-template' - bind: -> @val.$container - } - - # Local VMs are handled directly in `VM.$container`. - VMs: $set { - rule: 'VM' - bind: -> @val.$container - } - - $PBDs: -> @genval.PBDs - - PIFs: -> @genval.PIFs - $PIFs: -> @val.PIFs - - PCIs: -> @genval.PCIs - $PCIs: -> @val.PCIs - - PGPUs: -> @genval.PGPUs - $PGPUs: -> @val.PGPUs - - tasks: $set { - rule: 'task' - bind: -> @genval.resident_on - if: $isTaskLive - } - - $running_VMs: $set { - rule: 'VM' - bind: -> @val.$container - if: $isVMRunning - } - - $vCPUs: $sum { - rule: 'VM' - bind: -> @val.$container - if: $isVMRunning - val: -> @val.CPUs.number - } - - version: -> @genval.software_version.product_version - - build: -> @genval.software_version.build_number - } - - #------------------------------------------------------------------- - - # This definition is shared. - VMdef = -> - @data = { - metrics: $link -> @genval.metrics - guest_metrics: $link -> @genval.guest_metrics - } - - @val = { - name_label: -> @genval.name_label - - name_description: -> @genval.name_description - - boot: -> @genval.HVM_boot_params - - addresses: -> - {guest_metrics} = @data - if guest_metrics - guest_metrics.networks - else - null - - consoles: $set { - rule: 'console' - bind: -> @genval.VM - val: -> @val - } - - current_operations: -> @genval.current_operations - - docker: -> - monitor = @genval.other_config['xscontainer-monitor'] - return if not monitor? - - if monitor is 'False' - return { - enabled: false - } - - if @genval.power_state is 'Running' - if @genval.other_config.docker_ps && @genval.other_config.docker_info && @genval.other_config.docker_version - process = ($parseXML @genval.other_config.docker_ps).docker_ps - info = ($parseXML @genval.other_config.docker_info).docker_info - version = ($parseXML @genval.other_config.docker_version).docker_version - - return { - enabled: true - process: process - info: info - version: version - } - - return { enabled: true} - - # TODO: there is two possible value: "best-effort" and "restart" - high_availability: -> - if @genval.ha_restart_priority - true - else - false - - auto_poweron: -> - if @genval.other_config.auto_poweron - true - else - false - - os_version: -> - {guest_metrics} = @data - if guest_metrics - guest_metrics.os_version - else - null - - VGPUs: -> @genval.VGPUs - $VGPUs: -> @val.VGPUs - - power_state: -> @genval.power_state - - other: -> @genval.other_config - - memory: -> - {metrics, guest_metrics} = @data - - memory = { - dynamic: [ - +@genval.memory_dynamic_min - +@genval.memory_dynamic_max - ] - static: [ - +@genval.memory_static_min - +@genval.memory_static_max - ] - } - - memory.size = if not $isVMRunning.call this - +@genval.memory_dynamic_max - else if (gmmemory = guest_metrics?.memory)?.used - memory.usage = +gmmemory.used - +gmmemory.total - else if metrics - +metrics.memory_actual - else - +@genval.memory_dynamic_max - - memory - - PV_drivers: -> - {guest_metrics} = @data - if guest_metrics - guest_metrics.PV_drivers_up_to_date - else - false - - CPUs: -> - {metrics} = @data - - CPUs = { - max: +@genval.VCPUs_max - number: if ($isVMRunning.call this) and metrics - +metrics.VCPUs_number - else - +@genval.VCPUs_at_startup - } - - $CPU_usage: null #TODO - - # FIXME: $container should contains the pool UUID when the VM is - # not on a host. - $container: -> - if $isVMRunning.call this - @genval.resident_on - else - # TODO: Handle local VMs. (`get_possible_hosts()`). - @genval.$pool.$ref - - snapshots: -> @genval.snapshots - - snapshot_time: -> $toTimestamp @genval.snapshot_time - - $VBDs: -> @genval.VBDs - - VIFs: -> @genval.VIFs - - } - @rule VM: VMdef - @rule 'VM-controller': VMdef - - - #------------------------------------------------------------------- - - # VM-snapshot starts with the same definition but extends it. - @rule 'VM-snapshot': -> - VMdef.call(this) - - @val.$snapshot_of = -> @genval.snapshot_of - - #------------------------------------------------------------------- - - # VM-template starts with the same definition but extends it. - @rule 'VM-template': -> - VMdef.call this - - @val.CPUs.number = -> +@genval.VCPUs_at_startup - - @val.template_info = { - arch: -> @genval.other_config?['install-arch'] - disks: -> - #console.log @genval.other_config - disks = @genval.other_config?.disks - return [] unless disks? - - disks = ($parseXML disks)?.provision?.disk - return [] unless disks? - - disks = [disks] unless $isArray disks - # Normalize entries. - for disk in disks - disk.bootable = disk.bootable is 'true' - disk.size = +disk.size - disk.SR = disk.sr - delete disk.sr - disks - install_methods: -> - methods = @genval.other_config?['install-methods'] - return [] unless methods? - methods.split ',' - } - - #------------------------------------------------------------------- - - @rule SR: -> - @data = { - # Note: not dynamic. - host: $link( - -> @genval.PBDs[0] ? 'OpaqueRef:NULL' - -> @val.host - ) - } - - @val = { - name_label: -> @genval.name_label - - name_description: -> @genval.name_description - - SR_type: -> @genval.type - - content_type: -> @genval.content_type - - physical_usage: -> +@genval.physical_utilisation - - usage: -> +@genval.virtual_allocation - - size: -> +@genval.physical_size - - $container: -> - if @genval.shared - @genval.$pool.$ref - else - @data.host - - $PBDs: -> @genval.PBDs - - VDIs: -> @genval.VDIs - } - - #------------------------------------------------------------------- - - @rule PBD: -> - @val = { - attached: -> @genval.currently_attached - - host: -> @genval.host - - SR: -> @genval.SR - } - - #------------------------------------------------------------------- - - @rule PIF: -> - @val = { - attached: -> @genval.currently_attached - - device: -> @genval.device - - IP: -> @genval.IP - - $host: -> @genval.host - - MAC: -> @genval.MAC - - # TODO: Find a more meaningful name. - management: -> @genval.management - - mode: -> @genval.ip_configuration_mode - - MTU: -> +@genval.MTU - - netmask: -> @genval.netmask - - $network: -> @genval.network - - vlan: -> @genval.VLAN - - # TODO: What is it? - # - # Could it mean “is this a physical interface?”. - # How could a PIF not be physical? - #physical: -> @genval.physical - } - - #------------------------------------------------------------------- - - @rule VDI: -> - @val = { - name_label: -> @genval.name_label - - name_description: -> @genval.name_description - - # TODO: determine whether or not tags are required for a VDI. - #tags: $retrieveTags - - usage: -> +@genval.physical_utilisation - - size: -> +@genval.virtual_size - - $snapshot_of: -> - original = @genval.snapshot_of - if original is 'OpaqueRef:NULL' - null - else - original - - snapshots: -> @genval.snapshots - - # TODO: Does the name fit? - #snapshot_time: -> @genval.snapshot_time - - $SR: -> @genval.SR - - $VBDs: -> @genval.VBDs - - $VBD: -> # Deprecated - {VBDs} = @genval - - if VBDs.length is 0 then null else VBDs[0] - } - - #------------------------------------------------------------------- - - @rule VBD: -> - @val = { - attached: -> @genval.currently_attached - - bootable: -> @genval.bootable - - read_only: -> @genval.mode is 'RO' - - is_cd_drive: -> @genval.type is 'CD' - - position: -> @genval.userdevice - - # null if empty. - # - # TODO: Is it really equivalent? - VDI: -> - VDI = @genval.VDI - if VDI is 'OpaqueRef:NULL' - null - else - VDI - - VM: -> @genval.VM - } - - #------------------------------------------------------------------- - - @rule VIF: -> - @val = { - attached: -> @genval.currently_attached - - # TODO: Should it be cast to a number? - device: -> @genval.device - - MAC: -> @genval.MAC - - MTU: -> +@genval.MTU - - $network: -> @genval.network - - $VM: -> @genval.VM - } - - #------------------------------------------------------------------- - - @rule network: -> - @val = { - name_label: -> @genval.name_label - - name_description: -> @genval.name_description - - # TODO: determine whether or not tags are required for a VDI. - #tags: $retrieveTags - - bridge: -> @genval.bridge - - MTU: -> +@genval.MTU - - PIFs: -> @genval.PIFs - - VIFs: -> @genval.VIFs - } - - #------------------------------------------------------------------- - - @rule message: -> - @val = { - time: -> $toTimestamp @genval.timestamp - - $object: -> - # If the key of the concerned object has already be resolved - # returns the known value. - return @val.$object if @val.$object? - - # Tries to resolve the key of the concerned object. - object = (UUIDsToKeys.call this)[@genval.obj_uuid] - - # If resolved, unregister from the watcher. - UUIDsToKeys.unsubscribe.call this if object? - - object - - # TODO: Are these names meaningful? - name: -> @genval.name - body: -> @genval.body - } - - #------------------------------------------------------------------- - - @rule task: -> - @val = { - name_label: -> @genval.name_label - - name_description: -> @genval.name_description - - progress: -> +@genval.progress - - result: -> @genval.result - - $host: -> @genval.resident_on - - created: -> @genval.created - - finished: -> @genval.finished - - current_operations: -> @genval.current_operations - - status: -> @genval.status - } - - @rule host_patch: -> - @val = { - applied: -> @genval.applied - - $host: -> @genval.host - - time: -> $toTimestamp @genval.timestamp_applied - - pool_patch: -> @genval.pool_patch - - } - - @rule pool_patch: -> - @val = { - name_label: -> @genval.name_label - - name_description: -> @genval.name_description - - applied: -> @genval.pool_applied - - version: -> @genval.version - - $host_patches: -> @genval.host_patches - - size: -> @genval.size - - } - - @rule pci: -> - @val = { - pci_id: -> @genval.pci_id - - class_name: -> @genval.class_name - - device_name: -> @genval.device_name - - $host: -> @genval.host - - } - - @rule pgpu: -> - @val = { - pci: -> @genval.PCI - - host: -> @genval.host - - vgpus: -> @genval.resident_VGPUs - $vgpus: -> @val.vgpus - - $host: -> @genval.host - - } - - @rule vgpu: -> - @val = { - currentAttached: -> @genval.currently_attached - - vm: -> @genval.VM - - device: -> @genval.device - - resident_on: -> @genval.resident_on - - } - - return diff --git a/src/spec.spec-data.json b/src/spec.spec-data.json deleted file mode 100644 index d2a4a4152..000000000 --- a/src/spec.spec-data.json +++ /dev/null @@ -1 +0,0 @@ -{"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e":{"uuid":"313624ab-0958-bb1e-45b5-7556a463a10b","name_label":"Lab Pool","name_description":"Vates dev pool at our HQ","master":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","default_SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","suspend_image_SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","crash_dump_SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","other_config":{"cpuid_feature_mask":"ffffff7f-ffffffff-ffffffff-ffffffff","memory-ratio-hvm":"0.25","memory-ratio-pv":"0.25"},"ha_enabled":false,"ha_configuration":{},"ha_statefiles":[],"ha_host_failures_to_tolerate":"0","ha_plan_exists_for":"0","ha_allow_overcommit":false,"ha_overcommitted":false,"blobs":{},"tags":[],"gui_config":{"XenCenter.GraphLayout.0.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b":"cpu3,cpu2,cpu1,cpu0","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.cpu1":"-13395712","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.pif_eth1_rx":"-16737918","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.pif_eth0_tx":"-6726144","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.pif_eth0_rx":"-256","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.pif_eth1_tx":"-16711756","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.cpu2":"-16750849","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.cpu3":"-4217690","XenCenter.GraphLayout.2.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b":"pif_eth0_tx,pif_eth0_rx,pif_eth1_tx,pif_eth1_rx","XenCenter.GraphLayout.1.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b":"memory_total_kib,memory_free_kib","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.cpu0":"-26368","XenCenter.GraphName.2.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b":"Network Performance","XenCenter.DataSource.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b.memory_free_kib":"-6750157","XenCenter.GraphName.0.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b":"CPU Performance","XenCenter.GraphName.1.host.cc3e7067-e18a-4bdf-8a8c-67922c64a75b":"Memory Performance"},"wlb_url":"","wlb_username":"","wlb_enabled":false,"wlb_verify_cert":false,"redo_log_enabled":false,"redo_log_vdi":"OpaqueRef:NULL","vswitch_controller":"","restrictions":{"restrict_vswitch_controller":"false","restrict_lab":"false","restrict_stage":"false","restrict_storagelink":"false","restrict_storagelink_site_recovery":"false","restrict_web_selfservice":"true","restrict_web_selfservice_manager":"true","restrict_hotfix_apply":"true","restrict_vlan":"false","restrict_qos":"false","restrict_pool_attached_storage":"false","restrict_netapp":"false","restrict_equalogic":"false","restrict_pooling":"false","enable_xha":"true","restrict_marathon":"false","restrict_email_alerting":"false","restrict_historical_performance":"false","restrict_wlb":"true","restrict_rbac":"false","restrict_dmc":"false","restrict_checkpoint":"false","restrict_cpu_masking":"false","restrict_connection":"false","platform_filter":"false","regular_nag_dialog":"false","restrict_vmpr":"false","restrict_intellicache":"false","restrict_gpu":"false","restrict_dr":"false","restrict_vif_locking":"false","restrict_storage_xen_motion":"false"},"metadata_VDIs":[],"$ref":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$type":"pool","$sessionId":"OpaqueRef:cbcc5ecd-e4b2-d3d7-deb7-612791311879"},"OpaqueRef:cb68795a-8d1c-f2bb-6869-4946fd2df840":{"uuid":"cb68795a-8d1c-f2bb-6869-4946fd2df840","name_label":"session.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cb68795a-8d1c-f2bb-6869-4946fd2df840","$type":"role"},"OpaqueRef:1839c84a-cc70-8ca7-c500-f2d85b30aac4":{"uuid":"1839c84a-cc70-8ca7-c500-f2d85b30aac4","name_label":"session.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1839c84a-cc70-8ca7-c500-f2d85b30aac4","$type":"role"},"OpaqueRef:eb5f0341-f8a6-e605-9433-d85031bb2770":{"uuid":"eb5f0341-f8a6-e605-9433-d85031bb2770","name_label":"session.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eb5f0341-f8a6-e605-9433-d85031bb2770","$type":"role"},"OpaqueRef:da8ebe60-05d9-260e-84f8-b13dafaf518d":{"uuid":"da8ebe60-05d9-260e-84f8-b13dafaf518d","name_label":"session.get_this_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:da8ebe60-05d9-260e-84f8-b13dafaf518d","$type":"role"},"OpaqueRef:ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251":{"uuid":"ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251","name_label":"session.get_this_user","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251","$type":"role"},"OpaqueRef:6523834f-9b0e-f8b9-2417-43e0fc980cd1":{"uuid":"6523834f-9b0e-f8b9-2417-43e0fc980cd1","name_label":"session.get_last_active","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6523834f-9b0e-f8b9-2417-43e0fc980cd1","$type":"role"},"OpaqueRef:df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597":{"uuid":"df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597","name_label":"session.get_pool","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597","$type":"role"},"OpaqueRef:632bc7c1-60f2-a9ec-2db6-77992be390a1":{"uuid":"632bc7c1-60f2-a9ec-2db6-77992be390a1","name_label":"session.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:632bc7c1-60f2-a9ec-2db6-77992be390a1","$type":"role"},"OpaqueRef:73ef731b-d2b8-a643-f02a-276577b88b3f":{"uuid":"73ef731b-d2b8-a643-f02a-276577b88b3f","name_label":"session.get_is_local_superuser","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:73ef731b-d2b8-a643-f02a-276577b88b3f","$type":"role"},"OpaqueRef:e9008880-3714-e128-fcd5-d95cb8ee790b":{"uuid":"e9008880-3714-e128-fcd5-d95cb8ee790b","name_label":"session.get_subject","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e9008880-3714-e128-fcd5-d95cb8ee790b","$type":"role"},"OpaqueRef:efef35a8-cf3d-5f27-e7ad-a2f6f5202dac":{"uuid":"efef35a8-cf3d-5f27-e7ad-a2f6f5202dac","name_label":"session.get_validation_time","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:efef35a8-cf3d-5f27-e7ad-a2f6f5202dac","$type":"role"},"OpaqueRef:52684caf-e375-6caf-3396-62bcd5134d0c":{"uuid":"52684caf-e375-6caf-3396-62bcd5134d0c","name_label":"session.get_auth_user_sid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:52684caf-e375-6caf-3396-62bcd5134d0c","$type":"role"},"OpaqueRef:f39da662-3800-921b-a6d2-237aa094b51f":{"uuid":"f39da662-3800-921b-a6d2-237aa094b51f","name_label":"session.get_auth_user_name","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f39da662-3800-921b-a6d2-237aa094b51f","$type":"role"},"OpaqueRef:9fea0775-bfb0-bfd3-ea51-8d64335d23c5":{"uuid":"9fea0775-bfb0-bfd3-ea51-8d64335d23c5","name_label":"session.get_rbac_permissions","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9fea0775-bfb0-bfd3-ea51-8d64335d23c5","$type":"role"},"OpaqueRef:9dd59816-dea5-9ea6-d863-53ddeae637c8":{"uuid":"9dd59816-dea5-9ea6-d863-53ddeae637c8","name_label":"session.get_tasks","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9dd59816-dea5-9ea6-d863-53ddeae637c8","$type":"role"},"OpaqueRef:d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64":{"uuid":"d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64","name_label":"session.get_parent","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64","$type":"role"},"OpaqueRef:dec3af43-be23-aa4f-25e2-0e523ee2ddcd":{"uuid":"dec3af43-be23-aa4f-25e2-0e523ee2ddcd","name_label":"session.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dec3af43-be23-aa4f-25e2-0e523ee2ddcd","$type":"role"},"OpaqueRef:bd0a7604-abf5-2651-611b-2e213fa8680a":{"uuid":"bd0a7604-abf5-2651-611b-2e213fa8680a","name_label":"session.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bd0a7604-abf5-2651-611b-2e213fa8680a","$type":"role"},"OpaqueRef:3fc99c9a-e53d-443c-1c33-914f3058ae34":{"uuid":"3fc99c9a-e53d-443c-1c33-914f3058ae34","name_label":"session.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3fc99c9a-e53d-443c-1c33-914f3058ae34","$type":"role"},"OpaqueRef:9eaf06ef-8f42-4832-7099-e5a63d32a87d":{"uuid":"9eaf06ef-8f42-4832-7099-e5a63d32a87d","name_label":"session.login_with_password","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9eaf06ef-8f42-4832-7099-e5a63d32a87d","$type":"role"},"OpaqueRef:fd7dc035-3957-b7a1-f7e9-905f9f523ff4":{"uuid":"fd7dc035-3957-b7a1-f7e9-905f9f523ff4","name_label":"session.logout","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fd7dc035-3957-b7a1-f7e9-905f9f523ff4","$type":"role"},"OpaqueRef:e42fb7ad-a6e9-6bf7-03e9-5c74c1abe0ab":{"uuid":"e42fb7ad-a6e9-6bf7-03e9-5c74c1abe0ab","name_label":"session.slave_login","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e42fb7ad-a6e9-6bf7-03e9-5c74c1abe0ab","$type":"role"},"OpaqueRef:07fdab34-4358-9aab-d2d9-d837fdae2297":{"uuid":"07fdab34-4358-9aab-d2d9-d837fdae2297","name_label":"session.slave_local_login","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:07fdab34-4358-9aab-d2d9-d837fdae2297","$type":"role"},"OpaqueRef:814f6857-4634-66f4-c2fb-9bd469e96cf1":{"uuid":"814f6857-4634-66f4-c2fb-9bd469e96cf1","name_label":"session.slave_local_login_with_password","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:814f6857-4634-66f4-c2fb-9bd469e96cf1","$type":"role"},"OpaqueRef:690bd4e3-01f9-39df-4563-ee110eafa74c":{"uuid":"690bd4e3-01f9-39df-4563-ee110eafa74c","name_label":"session.local_logout","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:690bd4e3-01f9-39df-4563-ee110eafa74c","$type":"role"},"OpaqueRef:cb82f07a-4829-4df9-1817-2e6979df85a1":{"uuid":"cb82f07a-4829-4df9-1817-2e6979df85a1","name_label":"session.get_all_subject_identifiers","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cb82f07a-4829-4df9-1817-2e6979df85a1","$type":"role"},"OpaqueRef:a6d1d05d-8769-4937-bbbf-13105b2fd6d7":{"uuid":"a6d1d05d-8769-4937-bbbf-13105b2fd6d7","name_label":"session.logout_subject_identifier","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a6d1d05d-8769-4937-bbbf-13105b2fd6d7","$type":"role"},"OpaqueRef:daa86366-a0f6-b130-2d3d-77fe1355d6a3":{"uuid":"daa86366-a0f6-b130-2d3d-77fe1355d6a3","name_label":"auth.get_subject_identifier","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:daa86366-a0f6-b130-2d3d-77fe1355d6a3","$type":"role"},"OpaqueRef:91a8843e-12a6-4b4a-2d43-12db6b326490":{"uuid":"91a8843e-12a6-4b4a-2d43-12db6b326490","name_label":"auth.get_subject_information_from_identifier","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:91a8843e-12a6-4b4a-2d43-12db6b326490","$type":"role"},"OpaqueRef:bb22da75-1be1-172d-d8fc-1a1d7c45e425":{"uuid":"bb22da75-1be1-172d-d8fc-1a1d7c45e425","name_label":"auth.get_group_membership","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb22da75-1be1-172d-d8fc-1a1d7c45e425","$type":"role"},"OpaqueRef:ff06fa4e-8ca8-799a-f189-9cce85f6de90":{"uuid":"ff06fa4e-8ca8-799a-f189-9cce85f6de90","name_label":"subject.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ff06fa4e-8ca8-799a-f189-9cce85f6de90","$type":"role"},"OpaqueRef:95a849f8-0df0-feb8-7f87-4db6bf42da08":{"uuid":"95a849f8-0df0-feb8-7f87-4db6bf42da08","name_label":"subject.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:95a849f8-0df0-feb8-7f87-4db6bf42da08","$type":"role"},"OpaqueRef:59298bd9-fe55-677a-3fe1-fb38b57b4f1a":{"uuid":"59298bd9-fe55-677a-3fe1-fb38b57b4f1a","name_label":"subject.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:59298bd9-fe55-677a-3fe1-fb38b57b4f1a","$type":"role"},"OpaqueRef:4a59f765-d074-33f9-eb78-c3049da1f13f":{"uuid":"4a59f765-d074-33f9-eb78-c3049da1f13f","name_label":"subject.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a59f765-d074-33f9-eb78-c3049da1f13f","$type":"role"},"OpaqueRef:15dbefed-137f-5c07-a484-8f1ba24fb156":{"uuid":"15dbefed-137f-5c07-a484-8f1ba24fb156","name_label":"subject.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:15dbefed-137f-5c07-a484-8f1ba24fb156","$type":"role"},"OpaqueRef:a3181fc3-eb26-baa4-ddf9-a6c9f2af5812":{"uuid":"a3181fc3-eb26-baa4-ddf9-a6c9f2af5812","name_label":"subject.get_subject_identifier","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a3181fc3-eb26-baa4-ddf9-a6c9f2af5812","$type":"role"},"OpaqueRef:966296b4-fccd-e24b-96e7-d849e9aeb629":{"uuid":"966296b4-fccd-e24b-96e7-d849e9aeb629","name_label":"subject.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:966296b4-fccd-e24b-96e7-d849e9aeb629","$type":"role"},"OpaqueRef:e8564257-d2d5-cfdb-03cc-93d65e6fbaa3":{"uuid":"e8564257-d2d5-cfdb-03cc-93d65e6fbaa3","name_label":"subject.get_roles","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e8564257-d2d5-cfdb-03cc-93d65e6fbaa3","$type":"role"},"OpaqueRef:93195d34-c76a-648b-4746-638e6b0a1bef":{"uuid":"93195d34-c76a-648b-4746-638e6b0a1bef","name_label":"subject.add_to_roles","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93195d34-c76a-648b-4746-638e6b0a1bef","$type":"role"},"OpaqueRef:1664fcf9-fe5c-59ba-8d04-a9e8207b32d5":{"uuid":"1664fcf9-fe5c-59ba-8d04-a9e8207b32d5","name_label":"subject.remove_from_roles","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1664fcf9-fe5c-59ba-8d04-a9e8207b32d5","$type":"role"},"OpaqueRef:cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51":{"uuid":"cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51","name_label":"subject.get_permissions_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51","$type":"role"},"OpaqueRef:bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c":{"uuid":"bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c","name_label":"subject.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c","$type":"role"},"OpaqueRef:868dae0b-7f24-6fde-fc5d-0efebefe3c16":{"uuid":"868dae0b-7f24-6fde-fc5d-0efebefe3c16","name_label":"subject.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:868dae0b-7f24-6fde-fc5d-0efebefe3c16","$type":"role"},"OpaqueRef:7193632f-b165-b0df-6eec-2e71f08aa430":{"uuid":"7193632f-b165-b0df-6eec-2e71f08aa430","name_label":"subject.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7193632f-b165-b0df-6eec-2e71f08aa430","$type":"role"},"OpaqueRef:38d061c2-1df2-dbbb-c049-44bc0b68eb1b":{"uuid":"38d061c2-1df2-dbbb-c049-44bc0b68eb1b","name_label":"role.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:38d061c2-1df2-dbbb-c049-44bc0b68eb1b","$type":"role"},"OpaqueRef:606450c8-c382-ccf0-2505-0ac239ad4adf":{"uuid":"606450c8-c382-ccf0-2505-0ac239ad4adf","name_label":"role.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:606450c8-c382-ccf0-2505-0ac239ad4adf","$type":"role"},"OpaqueRef:945bb27d-4f1f-d1ff-0e32-baa566437bb4":{"uuid":"945bb27d-4f1f-d1ff-0e32-baa566437bb4","name_label":"role.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:945bb27d-4f1f-d1ff-0e32-baa566437bb4","$type":"role"},"OpaqueRef:2c8931b8-0efd-9380-aa53-ab086ba4a2cd":{"uuid":"2c8931b8-0efd-9380-aa53-ab086ba4a2cd","name_label":"role.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2c8931b8-0efd-9380-aa53-ab086ba4a2cd","$type":"role"},"OpaqueRef:0f9390a9-fd1b-1f93-d557-738545a56943":{"uuid":"0f9390a9-fd1b-1f93-d557-738545a56943","name_label":"role.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f9390a9-fd1b-1f93-d557-738545a56943","$type":"role"},"OpaqueRef:defae495-80af-75ac-d7de-a87a7dfcde9d":{"uuid":"defae495-80af-75ac-d7de-a87a7dfcde9d","name_label":"role.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:defae495-80af-75ac-d7de-a87a7dfcde9d","$type":"role"},"OpaqueRef:2e0163e9-7ec0-4088-aea5-688b3188b974":{"uuid":"2e0163e9-7ec0-4088-aea5-688b3188b974","name_label":"role.get_subroles","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2e0163e9-7ec0-4088-aea5-688b3188b974","$type":"role"},"OpaqueRef:b0104ee0-e56e-e24a-01c9-be7b31ebac3f":{"uuid":"b0104ee0-e56e-e24a-01c9-be7b31ebac3f","name_label":"role.get_permissions","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b0104ee0-e56e-e24a-01c9-be7b31ebac3f","$type":"role"},"OpaqueRef:daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4":{"uuid":"daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4","name_label":"role.get_permissions_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4","$type":"role"},"OpaqueRef:ee19a249-eb0f-2076-81a7-8fe7cbff99b8":{"uuid":"ee19a249-eb0f-2076-81a7-8fe7cbff99b8","name_label":"role.get_by_permission","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ee19a249-eb0f-2076-81a7-8fe7cbff99b8","$type":"role"},"OpaqueRef:c43079a6-7821-364b-4269-05745d93e29a":{"uuid":"c43079a6-7821-364b-4269-05745d93e29a","name_label":"role.get_by_permission_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c43079a6-7821-364b-4269-05745d93e29a","$type":"role"},"OpaqueRef:4a544977-600a-957b-28e2-3b578998c8f5":{"uuid":"4a544977-600a-957b-28e2-3b578998c8f5","name_label":"role.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a544977-600a-957b-28e2-3b578998c8f5","$type":"role"},"OpaqueRef:24182612-bdde-08d8-8548-7a8922b40d59":{"uuid":"24182612-bdde-08d8-8548-7a8922b40d59","name_label":"role.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:24182612-bdde-08d8-8548-7a8922b40d59","$type":"role"},"OpaqueRef:0c393fa2-41f9-c981-5581-eb3000f8316d":{"uuid":"0c393fa2-41f9-c981-5581-eb3000f8316d","name_label":"role.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0c393fa2-41f9-c981-5581-eb3000f8316d","$type":"role"},"OpaqueRef:5fa8a325-b230-e422-624d-78faf5473eda":{"uuid":"5fa8a325-b230-e422-624d-78faf5473eda","name_label":"task.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5fa8a325-b230-e422-624d-78faf5473eda","$type":"role"},"OpaqueRef:19a7836b-75be-43f1-9f23-856f2be12fc3":{"uuid":"19a7836b-75be-43f1-9f23-856f2be12fc3","name_label":"task.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:19a7836b-75be-43f1-9f23-856f2be12fc3","$type":"role"},"OpaqueRef:c4dfc733-e053-1074-1a54-5cbc33ddf686":{"uuid":"c4dfc733-e053-1074-1a54-5cbc33ddf686","name_label":"task.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c4dfc733-e053-1074-1a54-5cbc33ddf686","$type":"role"},"OpaqueRef:7d443d66-a509-ddd4-daf9-8f5c4ba55b4c":{"uuid":"7d443d66-a509-ddd4-daf9-8f5c4ba55b4c","name_label":"task.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7d443d66-a509-ddd4-daf9-8f5c4ba55b4c","$type":"role"},"OpaqueRef:6ad192de-f028-0771-7f5b-bd20a8fe4caf":{"uuid":"6ad192de-f028-0771-7f5b-bd20a8fe4caf","name_label":"task.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ad192de-f028-0771-7f5b-bd20a8fe4caf","$type":"role"},"OpaqueRef:1421d041-f186-04a8-be92-a1b91244eba4":{"uuid":"1421d041-f186-04a8-be92-a1b91244eba4","name_label":"task.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1421d041-f186-04a8-be92-a1b91244eba4","$type":"role"},"OpaqueRef:a66cba35-0b84-5261-664f-39c0d9ed54c4":{"uuid":"a66cba35-0b84-5261-664f-39c0d9ed54c4","name_label":"task.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a66cba35-0b84-5261-664f-39c0d9ed54c4","$type":"role"},"OpaqueRef:e2cf5c12-4316-3fde-fdee-1f962e52a24f":{"uuid":"e2cf5c12-4316-3fde-fdee-1f962e52a24f","name_label":"task.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e2cf5c12-4316-3fde-fdee-1f962e52a24f","$type":"role"},"OpaqueRef:f181149a-5c39-d532-a32d-b4c0cbf30f76":{"uuid":"f181149a-5c39-d532-a32d-b4c0cbf30f76","name_label":"task.get_created","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f181149a-5c39-d532-a32d-b4c0cbf30f76","$type":"role"},"OpaqueRef:31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f":{"uuid":"31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f","name_label":"task.get_finished","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f","$type":"role"},"OpaqueRef:532e25ef-d282-4334-8145-2e7b0573c7b6":{"uuid":"532e25ef-d282-4334-8145-2e7b0573c7b6","name_label":"task.get_status","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:532e25ef-d282-4334-8145-2e7b0573c7b6","$type":"role"},"OpaqueRef:87e03946-2afb-f82b-7c4c-648c5f68bcb0":{"uuid":"87e03946-2afb-f82b-7c4c-648c5f68bcb0","name_label":"task.get_resident_on","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:87e03946-2afb-f82b-7c4c-648c5f68bcb0","$type":"role"},"OpaqueRef:a62dfce5-4367-62b4-2b47-f178439fa685":{"uuid":"a62dfce5-4367-62b4-2b47-f178439fa685","name_label":"task.get_progress","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a62dfce5-4367-62b4-2b47-f178439fa685","$type":"role"},"OpaqueRef:5ff08560-8064-5ddb-b549-9c57ceae4cd8":{"uuid":"5ff08560-8064-5ddb-b549-9c57ceae4cd8","name_label":"task.get_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5ff08560-8064-5ddb-b549-9c57ceae4cd8","$type":"role"},"OpaqueRef:d0c0c85c-c3e0-5012-0a48-59d9c2d517c0":{"uuid":"d0c0c85c-c3e0-5012-0a48-59d9c2d517c0","name_label":"task.get_result","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d0c0c85c-c3e0-5012-0a48-59d9c2d517c0","$type":"role"},"OpaqueRef:b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3":{"uuid":"b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3","name_label":"task.get_error_info","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3","$type":"role"},"OpaqueRef:66fa6648-3999-7a19-20c9-a25827d96b8d":{"uuid":"66fa6648-3999-7a19-20c9-a25827d96b8d","name_label":"task.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:66fa6648-3999-7a19-20c9-a25827d96b8d","$type":"role"},"OpaqueRef:0b7902b4-8ad6-b117-efbb-c2c2f056e009":{"uuid":"0b7902b4-8ad6-b117-efbb-c2c2f056e009","name_label":"task.get_subtask_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0b7902b4-8ad6-b117-efbb-c2c2f056e009","$type":"role"},"OpaqueRef:2bf43b36-87e9-a224-4f48-9378843e4650":{"uuid":"2bf43b36-87e9-a224-4f48-9378843e4650","name_label":"task.get_subtasks","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2bf43b36-87e9-a224-4f48-9378843e4650","$type":"role"},"OpaqueRef:060f7f2d-13cc-7c62-5475-aa3b7498d677":{"uuid":"060f7f2d-13cc-7c62-5475-aa3b7498d677","name_label":"task.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:060f7f2d-13cc-7c62-5475-aa3b7498d677","$type":"role"},"OpaqueRef:2269bda5-7534-f62c-3369-46c3b4e6f527":{"uuid":"2269bda5-7534-f62c-3369-46c3b4e6f527","name_label":"task.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2269bda5-7534-f62c-3369-46c3b4e6f527","$type":"role"},"OpaqueRef:761f5f58-389c-d42b-185b-27d3649589e6":{"uuid":"761f5f58-389c-d42b-185b-27d3649589e6","name_label":"task.add_to_other_config/key:applies_to","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:761f5f58-389c-d42b-185b-27d3649589e6","$type":"role"},"OpaqueRef:7a7b22ac-e5d5-cea0-a320-857896f593e4":{"uuid":"7a7b22ac-e5d5-cea0-a320-857896f593e4","name_label":"task.add_to_other_config/key:xencenteruuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a7b22ac-e5d5-cea0-a320-857896f593e4","$type":"role"},"OpaqueRef:f64ba22a-a70a-57da-34a6-adde7f50b686":{"uuid":"f64ba22a-a70a-57da-34a6-adde7f50b686","name_label":"task.add_to_other_config/key:xencentermeddlingactiontitle","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f64ba22a-a70a-57da-34a6-adde7f50b686","$type":"role"},"OpaqueRef:b26b0c85-5d82-e7a0-fe8e-ee26ff9670b0":{"uuid":"b26b0c85-5d82-e7a0-fe8e-ee26ff9670b0","name_label":"task.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b26b0c85-5d82-e7a0-fe8e-ee26ff9670b0","$type":"role"},"OpaqueRef:182167f3-6dc0-b2c6-0ddb-2264903634cc":{"uuid":"182167f3-6dc0-b2c6-0ddb-2264903634cc","name_label":"task.remove_from_other_config/key:applies_to","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:182167f3-6dc0-b2c6-0ddb-2264903634cc","$type":"role"},"OpaqueRef:96052543-180c-6280-5b15-f2cc3cc4b089":{"uuid":"96052543-180c-6280-5b15-f2cc3cc4b089","name_label":"task.remove_from_other_config/key:xencenteruuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:96052543-180c-6280-5b15-f2cc3cc4b089","$type":"role"},"OpaqueRef:eaf5e80c-79cc-aed7-f41c-23ea41568a39":{"uuid":"eaf5e80c-79cc-aed7-f41c-23ea41568a39","name_label":"task.remove_from_other_config/key:xencentermeddlingactiontitle","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eaf5e80c-79cc-aed7-f41c-23ea41568a39","$type":"role"},"OpaqueRef:acbd6ba4-b816-8e9c-9298-cae8b10234eb":{"uuid":"acbd6ba4-b816-8e9c-9298-cae8b10234eb","name_label":"task.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:acbd6ba4-b816-8e9c-9298-cae8b10234eb","$type":"role"},"OpaqueRef:0a581d00-0a14-6c1a-eb08-aee55c2a02fc":{"uuid":"0a581d00-0a14-6c1a-eb08-aee55c2a02fc","name_label":"task.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0a581d00-0a14-6c1a-eb08-aee55c2a02fc","$type":"role"},"OpaqueRef:e61fbfbb-27a5-9b4d-c763-e9222b04d2fa":{"uuid":"e61fbfbb-27a5-9b4d-c763-e9222b04d2fa","name_label":"task.cancel","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e61fbfbb-27a5-9b4d-c763-e9222b04d2fa","$type":"role"},"OpaqueRef:7f2c447a-558b-085b-53f4-15e9bde0bbec":{"uuid":"7f2c447a-558b-085b-53f4-15e9bde0bbec","name_label":"task.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7f2c447a-558b-085b-53f4-15e9bde0bbec","$type":"role"},"OpaqueRef:acb54550-5aba-4e19-612e-12fa420b5687":{"uuid":"acb54550-5aba-4e19-612e-12fa420b5687","name_label":"task.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:acb54550-5aba-4e19-612e-12fa420b5687","$type":"role"},"OpaqueRef:f2eb9161-758d-0fb1-d254-0d20c628c865":{"uuid":"f2eb9161-758d-0fb1-d254-0d20c628c865","name_label":"task.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f2eb9161-758d-0fb1-d254-0d20c628c865","$type":"role"},"OpaqueRef:35b648f4-a14e-5d25-fb59-57c74efda911":{"uuid":"35b648f4-a14e-5d25-fb59-57c74efda911","name_label":"event.register","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:35b648f4-a14e-5d25-fb59-57c74efda911","$type":"role"},"OpaqueRef:d40676d9-ddd6-21bc-cde1-e61e9e340cbf":{"uuid":"d40676d9-ddd6-21bc-cde1-e61e9e340cbf","name_label":"event.unregister","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d40676d9-ddd6-21bc-cde1-e61e9e340cbf","$type":"role"},"OpaqueRef:433e5373-291c-2ea1-5b7e-81157e537309":{"uuid":"433e5373-291c-2ea1-5b7e-81157e537309","name_label":"event.next","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:433e5373-291c-2ea1-5b7e-81157e537309","$type":"role"},"OpaqueRef:074922ac-6eb0-c3b9-795b-62ef8efa69b7":{"uuid":"074922ac-6eb0-c3b9-795b-62ef8efa69b7","name_label":"event.from","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:074922ac-6eb0-c3b9-795b-62ef8efa69b7","$type":"role"},"OpaqueRef:cf2ec962-5270-cf53-d7ee-c29b07d2eb67":{"uuid":"cf2ec962-5270-cf53-d7ee-c29b07d2eb67","name_label":"event.get_current_id","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf2ec962-5270-cf53-d7ee-c29b07d2eb67","$type":"role"},"OpaqueRef:694efbc2-ae2c-5110-66c3-6a790f9f4179":{"uuid":"694efbc2-ae2c-5110-66c3-6a790f9f4179","name_label":"event.inject","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:694efbc2-ae2c-5110-66c3-6a790f9f4179","$type":"role"},"OpaqueRef:5b0b6fc6-b286-89fe-4915-9f8fd82ebe41":{"uuid":"5b0b6fc6-b286-89fe-4915-9f8fd82ebe41","name_label":"pool.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5b0b6fc6-b286-89fe-4915-9f8fd82ebe41","$type":"role"},"OpaqueRef:e9de48a1-e723-e998-5aa2-856511ddd799":{"uuid":"e9de48a1-e723-e998-5aa2-856511ddd799","name_label":"pool.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e9de48a1-e723-e998-5aa2-856511ddd799","$type":"role"},"OpaqueRef:51f79664-2471-8018-6975-c75f214995f8":{"uuid":"51f79664-2471-8018-6975-c75f214995f8","name_label":"pool.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:51f79664-2471-8018-6975-c75f214995f8","$type":"role"},"OpaqueRef:da9e6d7f-1d0a-50ef-1a87-8ace46f5be45":{"uuid":"da9e6d7f-1d0a-50ef-1a87-8ace46f5be45","name_label":"pool.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:da9e6d7f-1d0a-50ef-1a87-8ace46f5be45","$type":"role"},"OpaqueRef:39ffaa22-27dd-5241-7880-ea677905cf86":{"uuid":"39ffaa22-27dd-5241-7880-ea677905cf86","name_label":"pool.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:39ffaa22-27dd-5241-7880-ea677905cf86","$type":"role"},"OpaqueRef:552e253c-3b23-b27a-08b9-8342ba2c7aa9":{"uuid":"552e253c-3b23-b27a-08b9-8342ba2c7aa9","name_label":"pool.get_master","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:552e253c-3b23-b27a-08b9-8342ba2c7aa9","$type":"role"},"OpaqueRef:6c815ba2-1dc8-c9da-9e17-61367f52328e":{"uuid":"6c815ba2-1dc8-c9da-9e17-61367f52328e","name_label":"pool.get_default_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6c815ba2-1dc8-c9da-9e17-61367f52328e","$type":"role"},"OpaqueRef:d2446ff6-79b3-58d0-1428-0dbe75485624":{"uuid":"d2446ff6-79b3-58d0-1428-0dbe75485624","name_label":"pool.get_suspend_image_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d2446ff6-79b3-58d0-1428-0dbe75485624","$type":"role"},"OpaqueRef:c35132f9-9d6b-4d83-8814-386c304c5b02":{"uuid":"c35132f9-9d6b-4d83-8814-386c304c5b02","name_label":"pool.get_crash_dump_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c35132f9-9d6b-4d83-8814-386c304c5b02","$type":"role"},"OpaqueRef:8eb4a4e6-e48a-310f-6850-cdf1fe544858":{"uuid":"8eb4a4e6-e48a-310f-6850-cdf1fe544858","name_label":"pool.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8eb4a4e6-e48a-310f-6850-cdf1fe544858","$type":"role"},"OpaqueRef:6692b21c-f620-f0e5-dbf2-dee1294645f2":{"uuid":"6692b21c-f620-f0e5-dbf2-dee1294645f2","name_label":"pool.get_ha_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6692b21c-f620-f0e5-dbf2-dee1294645f2","$type":"role"},"OpaqueRef:090b0fa9-c127-16e5-4c17-4d08b4126ac3":{"uuid":"090b0fa9-c127-16e5-4c17-4d08b4126ac3","name_label":"pool.get_ha_configuration","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:090b0fa9-c127-16e5-4c17-4d08b4126ac3","$type":"role"},"OpaqueRef:03e94bb0-c911-2f70-33f8-b41aae2c6c18":{"uuid":"03e94bb0-c911-2f70-33f8-b41aae2c6c18","name_label":"pool.get_ha_statefiles","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:03e94bb0-c911-2f70-33f8-b41aae2c6c18","$type":"role"},"OpaqueRef:b63d6fef-2e86-46e2-432e-3810c30a3fa0":{"uuid":"b63d6fef-2e86-46e2-432e-3810c30a3fa0","name_label":"pool.get_ha_host_failures_to_tolerate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b63d6fef-2e86-46e2-432e-3810c30a3fa0","$type":"role"},"OpaqueRef:fd737c61-91a8-e31f-49c9-ac46ef649b95":{"uuid":"fd737c61-91a8-e31f-49c9-ac46ef649b95","name_label":"pool.get_ha_plan_exists_for","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fd737c61-91a8-e31f-49c9-ac46ef649b95","$type":"role"},"OpaqueRef:120c9250-46ec-3a62-fa14-99923beac495":{"uuid":"120c9250-46ec-3a62-fa14-99923beac495","name_label":"pool.get_ha_allow_overcommit","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:120c9250-46ec-3a62-fa14-99923beac495","$type":"role"},"OpaqueRef:398b78fb-3fe4-77aa-0c1a-9813c4f82308":{"uuid":"398b78fb-3fe4-77aa-0c1a-9813c4f82308","name_label":"pool.get_ha_overcommitted","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:398b78fb-3fe4-77aa-0c1a-9813c4f82308","$type":"role"},"OpaqueRef:76f60054-8565-3e4e-8f56-8a0d10e7b319":{"uuid":"76f60054-8565-3e4e-8f56-8a0d10e7b319","name_label":"pool.get_blobs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:76f60054-8565-3e4e-8f56-8a0d10e7b319","$type":"role"},"OpaqueRef:2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba":{"uuid":"2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba","name_label":"pool.get_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba","$type":"role"},"OpaqueRef:d1068e76-7374-9cf8-7189-03e003acf7c8":{"uuid":"d1068e76-7374-9cf8-7189-03e003acf7c8","name_label":"pool.get_gui_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d1068e76-7374-9cf8-7189-03e003acf7c8","$type":"role"},"OpaqueRef:c9d198f0-f2bc-2be1-3d96-298db54fc798":{"uuid":"c9d198f0-f2bc-2be1-3d96-298db54fc798","name_label":"pool.get_wlb_url","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c9d198f0-f2bc-2be1-3d96-298db54fc798","$type":"role"},"OpaqueRef:2abfa053-fde1-2b41-3f57-42d9bf4fa586":{"uuid":"2abfa053-fde1-2b41-3f57-42d9bf4fa586","name_label":"pool.get_wlb_username","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2abfa053-fde1-2b41-3f57-42d9bf4fa586","$type":"role"},"OpaqueRef:d7ea15b2-0664-1cd5-dc30-7c49a546ae80":{"uuid":"d7ea15b2-0664-1cd5-dc30-7c49a546ae80","name_label":"pool.get_wlb_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d7ea15b2-0664-1cd5-dc30-7c49a546ae80","$type":"role"},"OpaqueRef:e2203194-7c7f-1b58-83b8-965b7c88898c":{"uuid":"e2203194-7c7f-1b58-83b8-965b7c88898c","name_label":"pool.get_wlb_verify_cert","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e2203194-7c7f-1b58-83b8-965b7c88898c","$type":"role"},"OpaqueRef:fe22cf0c-dbf4-50c2-8eab-9f9ab233142f":{"uuid":"fe22cf0c-dbf4-50c2-8eab-9f9ab233142f","name_label":"pool.get_redo_log_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fe22cf0c-dbf4-50c2-8eab-9f9ab233142f","$type":"role"},"OpaqueRef:7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a":{"uuid":"7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a","name_label":"pool.get_redo_log_vdi","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a","$type":"role"},"OpaqueRef:07de6fc1-c0cd-9b21-36c3-5baccf8d66ce":{"uuid":"07de6fc1-c0cd-9b21-36c3-5baccf8d66ce","name_label":"pool.get_vswitch_controller","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:07de6fc1-c0cd-9b21-36c3-5baccf8d66ce","$type":"role"},"OpaqueRef:91d91080-a0b6-52e1-6c47-f19344682005":{"uuid":"91d91080-a0b6-52e1-6c47-f19344682005","name_label":"pool.get_restrictions","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:91d91080-a0b6-52e1-6c47-f19344682005","$type":"role"},"OpaqueRef:e35d6b89-5c97-f156-31c9-e518d3388659":{"uuid":"e35d6b89-5c97-f156-31c9-e518d3388659","name_label":"pool.get_metadata_vdis","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e35d6b89-5c97-f156-31c9-e518d3388659","$type":"role"},"OpaqueRef:f24972c9-f349-ef08-fa5a-54fb2b6eaa11":{"uuid":"f24972c9-f349-ef08-fa5a-54fb2b6eaa11","name_label":"pool.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f24972c9-f349-ef08-fa5a-54fb2b6eaa11","$type":"role"},"OpaqueRef:21eba7f5-f073-2d8e-2a41-183d3974d2a3":{"uuid":"21eba7f5-f073-2d8e-2a41-183d3974d2a3","name_label":"pool.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:21eba7f5-f073-2d8e-2a41-183d3974d2a3","$type":"role"},"OpaqueRef:762062a0-4d4e-0481-4f91-9974b0f63974":{"uuid":"762062a0-4d4e-0481-4f91-9974b0f63974","name_label":"pool.set_default_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:762062a0-4d4e-0481-4f91-9974b0f63974","$type":"role"},"OpaqueRef:6cc44d23-5081-fdf7-ee05-374043579763":{"uuid":"6cc44d23-5081-fdf7-ee05-374043579763","name_label":"pool.set_suspend_image_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6cc44d23-5081-fdf7-ee05-374043579763","$type":"role"},"OpaqueRef:a274ea64-2a4d-acec-b96f-32e36893fa83":{"uuid":"a274ea64-2a4d-acec-b96f-32e36893fa83","name_label":"pool.set_crash_dump_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a274ea64-2a4d-acec-b96f-32e36893fa83","$type":"role"},"OpaqueRef:f5e9d166-f43e-55e6-a50a-b9d788d13a0e":{"uuid":"f5e9d166-f43e-55e6-a50a-b9d788d13a0e","name_label":"pool.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f5e9d166-f43e-55e6-a50a-b9d788d13a0e","$type":"role"},"OpaqueRef:df1020a5-3e1d-672f-eb02-f85ff1604765":{"uuid":"df1020a5-3e1d-672f-eb02-f85ff1604765","name_label":"pool.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df1020a5-3e1d-672f-eb02-f85ff1604765","$type":"role"},"OpaqueRef:530fe816-39e5-b429-2034-eed4c4463bea":{"uuid":"530fe816-39e5-b429-2034-eed4c4463bea","name_label":"pool.add_to_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:530fe816-39e5-b429-2034-eed4c4463bea","$type":"role"},"OpaqueRef:6560fc11-49fa-5009-b9d6-0ec78e323867":{"uuid":"6560fc11-49fa-5009-b9d6-0ec78e323867","name_label":"pool.add_to_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6560fc11-49fa-5009-b9d6-0ec78e323867","$type":"role"},"OpaqueRef:ce8c8758-07cd-04b4-8086-945682e2b949":{"uuid":"ce8c8758-07cd-04b4-8086-945682e2b949","name_label":"pool.add_to_other_config/key:empty_folders","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ce8c8758-07cd-04b4-8086-945682e2b949","$type":"role"},"OpaqueRef:24ad1c99-0b78-84fd-fb2c-d0ed821b8c55":{"uuid":"24ad1c99-0b78-84fd-fb2c-d0ed821b8c55","name_label":"pool.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:24ad1c99-0b78-84fd-fb2c-d0ed821b8c55","$type":"role"},"OpaqueRef:bb97a595-e5af-1b54-9397-9252a92e5d35":{"uuid":"bb97a595-e5af-1b54-9397-9252a92e5d35","name_label":"pool.remove_from_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb97a595-e5af-1b54-9397-9252a92e5d35","$type":"role"},"OpaqueRef:1bf80bec-4d61-7551-907b-63dfdb72c416":{"uuid":"1bf80bec-4d61-7551-907b-63dfdb72c416","name_label":"pool.remove_from_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1bf80bec-4d61-7551-907b-63dfdb72c416","$type":"role"},"OpaqueRef:bc0653a4-e028-efba-fae8-e5b17731c375":{"uuid":"bc0653a4-e028-efba-fae8-e5b17731c375","name_label":"pool.remove_from_other_config/key:empty_folders","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bc0653a4-e028-efba-fae8-e5b17731c375","$type":"role"},"OpaqueRef:f2a2ba01-3dbe-1e3f-6786-b552b51e0b24":{"uuid":"f2a2ba01-3dbe-1e3f-6786-b552b51e0b24","name_label":"pool.set_ha_allow_overcommit","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f2a2ba01-3dbe-1e3f-6786-b552b51e0b24","$type":"role"},"OpaqueRef:539f0c4e-7084-9181-9fe7-4ed8e2c32095":{"uuid":"539f0c4e-7084-9181-9fe7-4ed8e2c32095","name_label":"pool.set_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:539f0c4e-7084-9181-9fe7-4ed8e2c32095","$type":"role"},"OpaqueRef:6ee3304b-df34-a1cd-3e11-530d22b55642":{"uuid":"6ee3304b-df34-a1cd-3e11-530d22b55642","name_label":"pool.add_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ee3304b-df34-a1cd-3e11-530d22b55642","$type":"role"},"OpaqueRef:c374b534-db7c-2c7e-f405-b061d3adc23d":{"uuid":"c374b534-db7c-2c7e-f405-b061d3adc23d","name_label":"pool.remove_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c374b534-db7c-2c7e-f405-b061d3adc23d","$type":"role"},"OpaqueRef:006a72c8-531f-e719-3fdc-69f8b5c5f8df":{"uuid":"006a72c8-531f-e719-3fdc-69f8b5c5f8df","name_label":"pool.set_gui_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:006a72c8-531f-e719-3fdc-69f8b5c5f8df","$type":"role"},"OpaqueRef:4d842444-22ca-0ae0-365f-96b9de2639a1":{"uuid":"4d842444-22ca-0ae0-365f-96b9de2639a1","name_label":"pool.add_to_gui_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4d842444-22ca-0ae0-365f-96b9de2639a1","$type":"role"},"OpaqueRef:4b46d426-0071-da23-974a-d20ba16379eb":{"uuid":"4b46d426-0071-da23-974a-d20ba16379eb","name_label":"pool.remove_from_gui_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4b46d426-0071-da23-974a-d20ba16379eb","$type":"role"},"OpaqueRef:52e4bbbe-6428-b508-903a-c5c9ca432c0c":{"uuid":"52e4bbbe-6428-b508-903a-c5c9ca432c0c","name_label":"pool.set_wlb_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:52e4bbbe-6428-b508-903a-c5c9ca432c0c","$type":"role"},"OpaqueRef:5e647d58-979a-4dbb-75d8-aac3ecfc2767":{"uuid":"5e647d58-979a-4dbb-75d8-aac3ecfc2767","name_label":"pool.set_wlb_verify_cert","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5e647d58-979a-4dbb-75d8-aac3ecfc2767","$type":"role"},"OpaqueRef:6db0dea8-3637-8c86-512b-21c722658b20":{"uuid":"6db0dea8-3637-8c86-512b-21c722658b20","name_label":"pool.join","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6db0dea8-3637-8c86-512b-21c722658b20","$type":"role"},"OpaqueRef:e6500c28-5f5e-df5f-3e8b-3220b86236d4":{"uuid":"e6500c28-5f5e-df5f-3e8b-3220b86236d4","name_label":"pool.join_force","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e6500c28-5f5e-df5f-3e8b-3220b86236d4","$type":"role"},"OpaqueRef:d39058bd-c379-93cb-56a0-eeac301a98ef":{"uuid":"d39058bd-c379-93cb-56a0-eeac301a98ef","name_label":"pool.eject","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d39058bd-c379-93cb-56a0-eeac301a98ef","$type":"role"},"OpaqueRef:5c5ec919-8ff0-3e43-9530-f6af022b6df3":{"uuid":"5c5ec919-8ff0-3e43-9530-f6af022b6df3","name_label":"pool.initial_auth","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5c5ec919-8ff0-3e43-9530-f6af022b6df3","$type":"role"},"OpaqueRef:e7ca4ff3-0af1-cae7-bd98-fe42a5187a9e":{"uuid":"e7ca4ff3-0af1-cae7-bd98-fe42a5187a9e","name_label":"pool.emergency_transition_to_master","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e7ca4ff3-0af1-cae7-bd98-fe42a5187a9e","$type":"role"},"OpaqueRef:c9c07dda-6524-1318-219c-f859f01363d9":{"uuid":"c9c07dda-6524-1318-219c-f859f01363d9","name_label":"pool.emergency_reset_master","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c9c07dda-6524-1318-219c-f859f01363d9","$type":"role"},"OpaqueRef:161d6a70-b3d4-3d26-06ee-89b75808cf1f":{"uuid":"161d6a70-b3d4-3d26-06ee-89b75808cf1f","name_label":"pool.recover_slaves","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:161d6a70-b3d4-3d26-06ee-89b75808cf1f","$type":"role"},"OpaqueRef:05fdbf08-04dd-1ee7-85e9-023d2367ae08":{"uuid":"05fdbf08-04dd-1ee7-85e9-023d2367ae08","name_label":"pool.hello","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:05fdbf08-04dd-1ee7-85e9-023d2367ae08","$type":"role"},"OpaqueRef:4f978bf0-3f53-b458-6dba-892cb9640634":{"uuid":"4f978bf0-3f53-b458-6dba-892cb9640634","name_label":"pool.is_slave","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f978bf0-3f53-b458-6dba-892cb9640634","$type":"role"},"OpaqueRef:ba064948-133c-a781-a76e-bdcb7ba95ad2":{"uuid":"ba064948-133c-a781-a76e-bdcb7ba95ad2","name_label":"pool.create_vlan","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ba064948-133c-a781-a76e-bdcb7ba95ad2","$type":"role"},"OpaqueRef:677e08b1-a821-6148-1e38-2f6a3b8a2098":{"uuid":"677e08b1-a821-6148-1e38-2f6a3b8a2098","name_label":"pool.create_vlan_from_pif","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:677e08b1-a821-6148-1e38-2f6a3b8a2098","$type":"role"},"OpaqueRef:6d347916-6b16-6ede-7fa7-2105b9bea116":{"uuid":"6d347916-6b16-6ede-7fa7-2105b9bea116","name_label":"pool.slave_network_report","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d347916-6b16-6ede-7fa7-2105b9bea116","$type":"role"},"OpaqueRef:d99ab5bc-8b15-20b8-b6c1-cd1e87328217":{"uuid":"d99ab5bc-8b15-20b8-b6c1-cd1e87328217","name_label":"pool.enable_ha","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d99ab5bc-8b15-20b8-b6c1-cd1e87328217","$type":"role"},"OpaqueRef:bd902185-7c85-4773-07db-e26912ed083e":{"uuid":"bd902185-7c85-4773-07db-e26912ed083e","name_label":"pool.disable_ha","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bd902185-7c85-4773-07db-e26912ed083e","$type":"role"},"OpaqueRef:ee6c04af-8673-7e25-f5ef-54d21b838e6b":{"uuid":"ee6c04af-8673-7e25-f5ef-54d21b838e6b","name_label":"pool.sync_database","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ee6c04af-8673-7e25-f5ef-54d21b838e6b","$type":"role"},"OpaqueRef:a170dda3-234e-3dc0-814c-99fb7d094eab":{"uuid":"a170dda3-234e-3dc0-814c-99fb7d094eab","name_label":"pool.designate_new_master","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a170dda3-234e-3dc0-814c-99fb7d094eab","$type":"role"},"OpaqueRef:ece28d18-1857-ab11-3fcb-5df868262d10":{"uuid":"ece28d18-1857-ab11-3fcb-5df868262d10","name_label":"pool.ha_prevent_restarts_for","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ece28d18-1857-ab11-3fcb-5df868262d10","$type":"role"},"OpaqueRef:aa78afeb-3181-fb7a-52b0-e174b682b0d0":{"uuid":"aa78afeb-3181-fb7a-52b0-e174b682b0d0","name_label":"pool.ha_failover_plan_exists","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aa78afeb-3181-fb7a-52b0-e174b682b0d0","$type":"role"},"OpaqueRef:16914305-3953-30e5-f0c0-4a45b161b668":{"uuid":"16914305-3953-30e5-f0c0-4a45b161b668","name_label":"pool.ha_compute_max_host_failures_to_tolerate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:16914305-3953-30e5-f0c0-4a45b161b668","$type":"role"},"OpaqueRef:2b5a7aab-29a5-b3cf-2d91-944fb2d22e66":{"uuid":"2b5a7aab-29a5-b3cf-2d91-944fb2d22e66","name_label":"pool.ha_compute_hypothetical_max_host_failures_to_tolerate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2b5a7aab-29a5-b3cf-2d91-944fb2d22e66","$type":"role"},"OpaqueRef:aaa35cdd-a8ab-ffa2-e7c3-327df4d313f2":{"uuid":"aaa35cdd-a8ab-ffa2-e7c3-327df4d313f2","name_label":"pool.ha_compute_vm_failover_plan","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aaa35cdd-a8ab-ffa2-e7c3-327df4d313f2","$type":"role"},"OpaqueRef:f03fbd01-ef08-2ac6-7db7-85c32289f29f":{"uuid":"f03fbd01-ef08-2ac6-7db7-85c32289f29f","name_label":"pool.set_ha_host_failures_to_tolerate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f03fbd01-ef08-2ac6-7db7-85c32289f29f","$type":"role"},"OpaqueRef:d4664f0e-dd3a-381d-a0c0-0af168d6f811":{"uuid":"d4664f0e-dd3a-381d-a0c0-0af168d6f811","name_label":"pool.create_new_blob","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d4664f0e-dd3a-381d-a0c0-0af168d6f811","$type":"role"},"OpaqueRef:d7ddd962-28c6-9807-c03d-43694243cd3f":{"uuid":"d7ddd962-28c6-9807-c03d-43694243cd3f","name_label":"pool.enable_binary_storage","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d7ddd962-28c6-9807-c03d-43694243cd3f","$type":"role"},"OpaqueRef:c000005f-5f22-5600-2e12-85495d6e02d7":{"uuid":"c000005f-5f22-5600-2e12-85495d6e02d7","name_label":"pool.disable_binary_storage","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c000005f-5f22-5600-2e12-85495d6e02d7","$type":"role"},"OpaqueRef:270cfff5-ac24-5f45-7018-67ba1079bb8e":{"uuid":"270cfff5-ac24-5f45-7018-67ba1079bb8e","name_label":"pool.enable_external_auth","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:270cfff5-ac24-5f45-7018-67ba1079bb8e","$type":"role"},"OpaqueRef:bfe28d20-c21e-16b4-15eb-2a1a44fb7615":{"uuid":"bfe28d20-c21e-16b4-15eb-2a1a44fb7615","name_label":"pool.disable_external_auth","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bfe28d20-c21e-16b4-15eb-2a1a44fb7615","$type":"role"},"OpaqueRef:cf7a77ea-5bd9-ad1d-19f4-b58701eb3be6":{"uuid":"cf7a77ea-5bd9-ad1d-19f4-b58701eb3be6","name_label":"pool.detect_nonhomogeneous_external_auth","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf7a77ea-5bd9-ad1d-19f4-b58701eb3be6","$type":"role"},"OpaqueRef:29d1f9bf-6aa6-119b-d42c-66bbfc290f05":{"uuid":"29d1f9bf-6aa6-119b-d42c-66bbfc290f05","name_label":"pool.initialize_wlb","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:29d1f9bf-6aa6-119b-d42c-66bbfc290f05","$type":"role"},"OpaqueRef:19b96aba-3c88-8763-2dd1-c3f90daccc9b":{"uuid":"19b96aba-3c88-8763-2dd1-c3f90daccc9b","name_label":"pool.deconfigure_wlb","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:19b96aba-3c88-8763-2dd1-c3f90daccc9b","$type":"role"},"OpaqueRef:aa46e99e-47a3-f937-5d49-789cffc42ced":{"uuid":"aa46e99e-47a3-f937-5d49-789cffc42ced","name_label":"pool.send_wlb_configuration","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aa46e99e-47a3-f937-5d49-789cffc42ced","$type":"role"},"OpaqueRef:9801533b-f160-629a-a994-e742e7971455":{"uuid":"9801533b-f160-629a-a994-e742e7971455","name_label":"pool.retrieve_wlb_configuration","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9801533b-f160-629a-a994-e742e7971455","$type":"role"},"OpaqueRef:7033b792-890a-4ca5-0314-d6e8866d98ff":{"uuid":"7033b792-890a-4ca5-0314-d6e8866d98ff","name_label":"pool.retrieve_wlb_recommendations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7033b792-890a-4ca5-0314-d6e8866d98ff","$type":"role"},"OpaqueRef:828b9849-82f7-fc81-82eb-0b94c7490117":{"uuid":"828b9849-82f7-fc81-82eb-0b94c7490117","name_label":"pool.send_test_post","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:828b9849-82f7-fc81-82eb-0b94c7490117","$type":"role"},"OpaqueRef:8303392e-0602-1627-f095-7d213fecc091":{"uuid":"8303392e-0602-1627-f095-7d213fecc091","name_label":"pool.certificate_install","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8303392e-0602-1627-f095-7d213fecc091","$type":"role"},"OpaqueRef:1ca264d3-a51a-6f66-6c80-ab7c9045c43e":{"uuid":"1ca264d3-a51a-6f66-6c80-ab7c9045c43e","name_label":"pool.certificate_uninstall","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1ca264d3-a51a-6f66-6c80-ab7c9045c43e","$type":"role"},"OpaqueRef:14e2b30b-3914-3eec-97a7-449af2a01521":{"uuid":"14e2b30b-3914-3eec-97a7-449af2a01521","name_label":"pool.certificate_list","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:14e2b30b-3914-3eec-97a7-449af2a01521","$type":"role"},"OpaqueRef:159067df-8a25-53b0-d4a7-8a2041e88257":{"uuid":"159067df-8a25-53b0-d4a7-8a2041e88257","name_label":"pool.crl_install","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:159067df-8a25-53b0-d4a7-8a2041e88257","$type":"role"},"OpaqueRef:e78ab05f-eed2-a737-ae9e-45cf74eaf3e6":{"uuid":"e78ab05f-eed2-a737-ae9e-45cf74eaf3e6","name_label":"pool.crl_uninstall","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e78ab05f-eed2-a737-ae9e-45cf74eaf3e6","$type":"role"},"OpaqueRef:8ebb3800-5b1c-0ca3-c9e8-36eb1f655069":{"uuid":"8ebb3800-5b1c-0ca3-c9e8-36eb1f655069","name_label":"pool.crl_list","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8ebb3800-5b1c-0ca3-c9e8-36eb1f655069","$type":"role"},"OpaqueRef:b44f8c55-f4a4-cec7-5c37-abc8baec46e9":{"uuid":"b44f8c55-f4a4-cec7-5c37-abc8baec46e9","name_label":"pool.certificate_sync","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b44f8c55-f4a4-cec7-5c37-abc8baec46e9","$type":"role"},"OpaqueRef:5ed4c75a-a705-cbe3-c93f-6f5b652c1293":{"uuid":"5ed4c75a-a705-cbe3-c93f-6f5b652c1293","name_label":"pool.enable_redo_log","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5ed4c75a-a705-cbe3-c93f-6f5b652c1293","$type":"role"},"OpaqueRef:df654d18-e941-25db-18d8-b735dba1a499":{"uuid":"df654d18-e941-25db-18d8-b735dba1a499","name_label":"pool.disable_redo_log","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df654d18-e941-25db-18d8-b735dba1a499","$type":"role"},"OpaqueRef:5106e4a1-60d7-d4ab-7fd0-acfc2f0060c7":{"uuid":"5106e4a1-60d7-d4ab-7fd0-acfc2f0060c7","name_label":"pool.audit_log_append","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5106e4a1-60d7-d4ab-7fd0-acfc2f0060c7","$type":"role"},"OpaqueRef:421adf0b-10bc-728e-e777-10fb174d6a53":{"uuid":"421adf0b-10bc-728e-e777-10fb174d6a53","name_label":"pool.set_vswitch_controller","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:421adf0b-10bc-728e-e777-10fb174d6a53","$type":"role"},"OpaqueRef:525b5132-be91-74e5-c9e1-d42ea0ede4b2":{"uuid":"525b5132-be91-74e5-c9e1-d42ea0ede4b2","name_label":"pool.test_archive_target","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:525b5132-be91-74e5-c9e1-d42ea0ede4b2","$type":"role"},"OpaqueRef:cbd24236-a99e-a9eb-ea57-76544dd559b9":{"uuid":"cbd24236-a99e-a9eb-ea57-76544dd559b9","name_label":"pool.enable_local_storage_caching","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cbd24236-a99e-a9eb-ea57-76544dd559b9","$type":"role"},"OpaqueRef:57a4035c-2176-1a2e-cca7-605ddbef54d6":{"uuid":"57a4035c-2176-1a2e-cca7-605ddbef54d6","name_label":"pool.disable_local_storage_caching","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:57a4035c-2176-1a2e-cca7-605ddbef54d6","$type":"role"},"OpaqueRef:bf00c330-4ef3-1109-c17e-cf69d8996cf8":{"uuid":"bf00c330-4ef3-1109-c17e-cf69d8996cf8","name_label":"pool.get_license_state","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bf00c330-4ef3-1109-c17e-cf69d8996cf8","$type":"role"},"OpaqueRef:ed7c36c7-be82-afed-7751-644215155619":{"uuid":"ed7c36c7-be82-afed-7751-644215155619","name_label":"pool.apply_edition","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ed7c36c7-be82-afed-7751-644215155619","$type":"role"},"OpaqueRef:e58e85dd-0873-8df8-bf0e-a78ad73a0d83":{"uuid":"e58e85dd-0873-8df8-bf0e-a78ad73a0d83","name_label":"pool.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e58e85dd-0873-8df8-bf0e-a78ad73a0d83","$type":"role"},"OpaqueRef:7c284010-cae5-10b6-b321-ec149287a8c6":{"uuid":"7c284010-cae5-10b6-b321-ec149287a8c6","name_label":"pool.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7c284010-cae5-10b6-b321-ec149287a8c6","$type":"role"},"OpaqueRef:cd2c87ac-2763-dd45-0e22-b563622e5c9b":{"uuid":"cd2c87ac-2763-dd45-0e22-b563622e5c9b","name_label":"pool.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cd2c87ac-2763-dd45-0e22-b563622e5c9b","$type":"role"},"OpaqueRef:7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7":{"uuid":"7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7","name_label":"pool_patch.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7","$type":"role"},"OpaqueRef:f78d82f7-c143-7172-096e-ad50798f475c":{"uuid":"f78d82f7-c143-7172-096e-ad50798f475c","name_label":"pool_patch.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f78d82f7-c143-7172-096e-ad50798f475c","$type":"role"},"OpaqueRef:e4aac618-ccf9-4592-c23d-f829bbcf563b":{"uuid":"e4aac618-ccf9-4592-c23d-f829bbcf563b","name_label":"pool_patch.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e4aac618-ccf9-4592-c23d-f829bbcf563b","$type":"role"},"OpaqueRef:08cfa7e7-f341-4a78-6035-87d5741d02e8":{"uuid":"08cfa7e7-f341-4a78-6035-87d5741d02e8","name_label":"pool_patch.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:08cfa7e7-f341-4a78-6035-87d5741d02e8","$type":"role"},"OpaqueRef:5103be90-76c6-cffd-3512-d622d93a74a2":{"uuid":"5103be90-76c6-cffd-3512-d622d93a74a2","name_label":"pool_patch.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5103be90-76c6-cffd-3512-d622d93a74a2","$type":"role"},"OpaqueRef:6b28edf5-7612-be94-cccb-b7f2993b9104":{"uuid":"6b28edf5-7612-be94-cccb-b7f2993b9104","name_label":"pool_patch.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6b28edf5-7612-be94-cccb-b7f2993b9104","$type":"role"},"OpaqueRef:d6645112-98c5-829e-d842-8d0241d909d8":{"uuid":"d6645112-98c5-829e-d842-8d0241d909d8","name_label":"pool_patch.get_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6645112-98c5-829e-d842-8d0241d909d8","$type":"role"},"OpaqueRef:a31fb120-d59f-d003-f445-557c6d40f0b5":{"uuid":"a31fb120-d59f-d003-f445-557c6d40f0b5","name_label":"pool_patch.get_size","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a31fb120-d59f-d003-f445-557c6d40f0b5","$type":"role"},"OpaqueRef:54014da8-4ef9-638c-1089-074874d47231":{"uuid":"54014da8-4ef9-638c-1089-074874d47231","name_label":"pool_patch.get_pool_applied","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:54014da8-4ef9-638c-1089-074874d47231","$type":"role"},"OpaqueRef:f094e5cd-c351-cdcd-01a2-a9c9ee14941e":{"uuid":"f094e5cd-c351-cdcd-01a2-a9c9ee14941e","name_label":"pool_patch.get_host_patches","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f094e5cd-c351-cdcd-01a2-a9c9ee14941e","$type":"role"},"OpaqueRef:0e32a766-a0a5-00a3-0058-0bce4987d801":{"uuid":"0e32a766-a0a5-00a3-0058-0bce4987d801","name_label":"pool_patch.get_after_apply_guidance","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e32a766-a0a5-00a3-0058-0bce4987d801","$type":"role"},"OpaqueRef:d632d605-4171-f42a-7898-62245cc28f04":{"uuid":"d632d605-4171-f42a-7898-62245cc28f04","name_label":"pool_patch.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d632d605-4171-f42a-7898-62245cc28f04","$type":"role"},"OpaqueRef:bf994089-76bf-cf4b-1400-34152d3fc603":{"uuid":"bf994089-76bf-cf4b-1400-34152d3fc603","name_label":"pool_patch.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bf994089-76bf-cf4b-1400-34152d3fc603","$type":"role"},"OpaqueRef:0c6c285b-58e3-348b-67e9-2cf1aee0f8fa":{"uuid":"0c6c285b-58e3-348b-67e9-2cf1aee0f8fa","name_label":"pool_patch.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0c6c285b-58e3-348b-67e9-2cf1aee0f8fa","$type":"role"},"OpaqueRef:7b8834dc-6594-da5a-9bdb-22c2e2d146a0":{"uuid":"7b8834dc-6594-da5a-9bdb-22c2e2d146a0","name_label":"pool_patch.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7b8834dc-6594-da5a-9bdb-22c2e2d146a0","$type":"role"},"OpaqueRef:d4385002-b920-5412-4c57-b010f451fa81":{"uuid":"d4385002-b920-5412-4c57-b010f451fa81","name_label":"pool_patch.apply","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d4385002-b920-5412-4c57-b010f451fa81","$type":"role"},"OpaqueRef:0176088f-47bb-ab62-5325-5d22acc71268":{"uuid":"0176088f-47bb-ab62-5325-5d22acc71268","name_label":"pool_patch.pool_apply","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0176088f-47bb-ab62-5325-5d22acc71268","$type":"role"},"OpaqueRef:4b0e8acb-dfc4-78b8-4fe2-b670d7d97890":{"uuid":"4b0e8acb-dfc4-78b8-4fe2-b670d7d97890","name_label":"pool_patch.precheck","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4b0e8acb-dfc4-78b8-4fe2-b670d7d97890","$type":"role"},"OpaqueRef:77f0dc45-f46e-2242-14a9-22aa38353039":{"uuid":"77f0dc45-f46e-2242-14a9-22aa38353039","name_label":"pool_patch.clean","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:77f0dc45-f46e-2242-14a9-22aa38353039","$type":"role"},"OpaqueRef:3c2b3e8d-ec65-9479-3074-7fb06b75928a":{"uuid":"3c2b3e8d-ec65-9479-3074-7fb06b75928a","name_label":"pool_patch.pool_clean","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3c2b3e8d-ec65-9479-3074-7fb06b75928a","$type":"role"},"OpaqueRef:864a2586-45a3-a18e-fc4b-970429066482":{"uuid":"864a2586-45a3-a18e-fc4b-970429066482","name_label":"pool_patch.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:864a2586-45a3-a18e-fc4b-970429066482","$type":"role"},"OpaqueRef:4bac4c85-f235-32a1-b4e6-c4237652134a":{"uuid":"4bac4c85-f235-32a1-b4e6-c4237652134a","name_label":"pool_patch.clean_on_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4bac4c85-f235-32a1-b4e6-c4237652134a","$type":"role"},"OpaqueRef:4b7ea29b-eec1-c56a-304a-b68c88799fed":{"uuid":"4b7ea29b-eec1-c56a-304a-b68c88799fed","name_label":"pool_patch.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4b7ea29b-eec1-c56a-304a-b68c88799fed","$type":"role"},"OpaqueRef:1165f711-b47e-76ec-dbac-4c225b4b9ddf":{"uuid":"1165f711-b47e-76ec-dbac-4c225b4b9ddf","name_label":"pool_patch.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1165f711-b47e-76ec-dbac-4c225b4b9ddf","$type":"role"},"OpaqueRef:1b53cad1-0fb1-6b52-0875-c7f999a1a02f":{"uuid":"1b53cad1-0fb1-6b52-0875-c7f999a1a02f","name_label":"pool_patch.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1b53cad1-0fb1-6b52-0875-c7f999a1a02f","$type":"role"},"OpaqueRef:009895d6-2a35-f2b9-5dbb-fca46c208424":{"uuid":"009895d6-2a35-f2b9-5dbb-fca46c208424","name_label":"vm.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:009895d6-2a35-f2b9-5dbb-fca46c208424","$type":"role"},"OpaqueRef:d533db5f-b3c7-5053-942c-1ec28b1f25b0":{"uuid":"d533db5f-b3c7-5053-942c-1ec28b1f25b0","name_label":"vm.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d533db5f-b3c7-5053-942c-1ec28b1f25b0","$type":"role"},"OpaqueRef:3f3ec99f-91cf-3ae6-8a10-78901c4b25ec":{"uuid":"3f3ec99f-91cf-3ae6-8a10-78901c4b25ec","name_label":"vm.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3f3ec99f-91cf-3ae6-8a10-78901c4b25ec","$type":"role"},"OpaqueRef:1a1d982c-8dfb-5dc2-c535-265eaf8adb3e":{"uuid":"1a1d982c-8dfb-5dc2-c535-265eaf8adb3e","name_label":"vm.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1a1d982c-8dfb-5dc2-c535-265eaf8adb3e","$type":"role"},"OpaqueRef:86098675-bebe-e1d7-c063-988b04499e45":{"uuid":"86098675-bebe-e1d7-c063-988b04499e45","name_label":"vm.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:86098675-bebe-e1d7-c063-988b04499e45","$type":"role"},"OpaqueRef:b798b24d-1067-d2ea-7fc9-f147d916ba47":{"uuid":"b798b24d-1067-d2ea-7fc9-f147d916ba47","name_label":"vm.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b798b24d-1067-d2ea-7fc9-f147d916ba47","$type":"role"},"OpaqueRef:b4992000-119b-662e-22d3-ff2ba2a55c0b":{"uuid":"b4992000-119b-662e-22d3-ff2ba2a55c0b","name_label":"vm.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b4992000-119b-662e-22d3-ff2ba2a55c0b","$type":"role"},"OpaqueRef:2694b9ba-caae-160a-1fee-c4401f7eb871":{"uuid":"2694b9ba-caae-160a-1fee-c4401f7eb871","name_label":"vm.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2694b9ba-caae-160a-1fee-c4401f7eb871","$type":"role"},"OpaqueRef:20192ebc-be70-d33d-c163-1770a526a958":{"uuid":"20192ebc-be70-d33d-c163-1770a526a958","name_label":"vm.get_power_state","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:20192ebc-be70-d33d-c163-1770a526a958","$type":"role"},"OpaqueRef:76df53df-4e08-fd20-80be-8382f055f47a":{"uuid":"76df53df-4e08-fd20-80be-8382f055f47a","name_label":"vm.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:76df53df-4e08-fd20-80be-8382f055f47a","$type":"role"},"OpaqueRef:c58e0892-cfab-2364-6b9a-fccf603a29e6":{"uuid":"c58e0892-cfab-2364-6b9a-fccf603a29e6","name_label":"vm.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c58e0892-cfab-2364-6b9a-fccf603a29e6","$type":"role"},"OpaqueRef:09f1a83f-01ae-ed9c-c781-98517d1dd3d2":{"uuid":"09f1a83f-01ae-ed9c-c781-98517d1dd3d2","name_label":"vm.get_user_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:09f1a83f-01ae-ed9c-c781-98517d1dd3d2","$type":"role"},"OpaqueRef:d1e16e8d-92e0-ccc1-c85c-c2244e99ae74":{"uuid":"d1e16e8d-92e0-ccc1-c85c-c2244e99ae74","name_label":"vm.get_is_a_template","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d1e16e8d-92e0-ccc1-c85c-c2244e99ae74","$type":"role"},"OpaqueRef:27e9e225-a5b7-ca6e-75d3-5b4cb52d3627":{"uuid":"27e9e225-a5b7-ca6e-75d3-5b4cb52d3627","name_label":"vm.get_suspend_vdi","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:27e9e225-a5b7-ca6e-75d3-5b4cb52d3627","$type":"role"},"OpaqueRef:9a38b22c-0f0e-1bb3-323f-04b4445a3700":{"uuid":"9a38b22c-0f0e-1bb3-323f-04b4445a3700","name_label":"vm.get_resident_on","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9a38b22c-0f0e-1bb3-323f-04b4445a3700","$type":"role"},"OpaqueRef:b6a98068-1e06-e7fe-1010-269343afa0b2":{"uuid":"b6a98068-1e06-e7fe-1010-269343afa0b2","name_label":"vm.get_affinity","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b6a98068-1e06-e7fe-1010-269343afa0b2","$type":"role"},"OpaqueRef:f0155615-65ba-9161-c3bb-cac286bae2b1":{"uuid":"f0155615-65ba-9161-c3bb-cac286bae2b1","name_label":"vm.get_memory_overhead","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f0155615-65ba-9161-c3bb-cac286bae2b1","$type":"role"},"OpaqueRef:d3c5c812-c278-9827-8e2a-24bbdab201a7":{"uuid":"d3c5c812-c278-9827-8e2a-24bbdab201a7","name_label":"vm.get_memory_target","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d3c5c812-c278-9827-8e2a-24bbdab201a7","$type":"role"},"OpaqueRef:531f332b-49aa-b429-6f50-4d803205f792":{"uuid":"531f332b-49aa-b429-6f50-4d803205f792","name_label":"vm.get_memory_static_max","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:531f332b-49aa-b429-6f50-4d803205f792","$type":"role"},"OpaqueRef:fcf7dbbf-286d-73ec-e9e6-6c329a627d01":{"uuid":"fcf7dbbf-286d-73ec-e9e6-6c329a627d01","name_label":"vm.get_memory_dynamic_max","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fcf7dbbf-286d-73ec-e9e6-6c329a627d01","$type":"role"},"OpaqueRef:b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e":{"uuid":"b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e","name_label":"vm.get_memory_dynamic_min","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e","$type":"role"},"OpaqueRef:04e56171-2991-e1d5-f908-d6aa4ea70bfd":{"uuid":"04e56171-2991-e1d5-f908-d6aa4ea70bfd","name_label":"vm.get_memory_static_min","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:04e56171-2991-e1d5-f908-d6aa4ea70bfd","$type":"role"},"OpaqueRef:e57f5462-775a-c7cb-0098-6f5d512abece":{"uuid":"e57f5462-775a-c7cb-0098-6f5d512abece","name_label":"vm.get_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e57f5462-775a-c7cb-0098-6f5d512abece","$type":"role"},"OpaqueRef:f35f5fa2-d886-5a8f-a5e4-1e41237e20d9":{"uuid":"f35f5fa2-d886-5a8f-a5e4-1e41237e20d9","name_label":"vm.get_vcpus_max","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f35f5fa2-d886-5a8f-a5e4-1e41237e20d9","$type":"role"},"OpaqueRef:d2071cda-fa54-9231-7db2-fddb3112eae7":{"uuid":"d2071cda-fa54-9231-7db2-fddb3112eae7","name_label":"vm.get_vcpus_at_startup","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d2071cda-fa54-9231-7db2-fddb3112eae7","$type":"role"},"OpaqueRef:0423894e-139f-10e1-855f-4a550175b615":{"uuid":"0423894e-139f-10e1-855f-4a550175b615","name_label":"vm.get_actions_after_shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0423894e-139f-10e1-855f-4a550175b615","$type":"role"},"OpaqueRef:f089614b-16db-9e28-06f9-0e0ca7be5320":{"uuid":"f089614b-16db-9e28-06f9-0e0ca7be5320","name_label":"vm.get_actions_after_reboot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f089614b-16db-9e28-06f9-0e0ca7be5320","$type":"role"},"OpaqueRef:941a6983-a5e2-3772-ed58-1e2aa29b1436":{"uuid":"941a6983-a5e2-3772-ed58-1e2aa29b1436","name_label":"vm.get_actions_after_crash","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:941a6983-a5e2-3772-ed58-1e2aa29b1436","$type":"role"},"OpaqueRef:47999374-b082-b73d-09d1-37bb2836d522":{"uuid":"47999374-b082-b73d-09d1-37bb2836d522","name_label":"vm.get_consoles","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:47999374-b082-b73d-09d1-37bb2836d522","$type":"role"},"OpaqueRef:5937be6e-540c-da35-a08f-45b6bee6950c":{"uuid":"5937be6e-540c-da35-a08f-45b6bee6950c","name_label":"vm.get_vifs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5937be6e-540c-da35-a08f-45b6bee6950c","$type":"role"},"OpaqueRef:dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded":{"uuid":"dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded","name_label":"vm.get_vbds","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded","$type":"role"},"OpaqueRef:84aed1e7-ce75-1c04-9221-b41765e7ec25":{"uuid":"84aed1e7-ce75-1c04-9221-b41765e7ec25","name_label":"vm.get_crash_dumps","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:84aed1e7-ce75-1c04-9221-b41765e7ec25","$type":"role"},"OpaqueRef:e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8":{"uuid":"e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8","name_label":"vm.get_vtpms","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8","$type":"role"},"OpaqueRef:e66a5a0f-8c8e-d629-ba92-1b1f0374498e":{"uuid":"e66a5a0f-8c8e-d629-ba92-1b1f0374498e","name_label":"vm.get_pv_bootloader","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e66a5a0f-8c8e-d629-ba92-1b1f0374498e","$type":"role"},"OpaqueRef:12c18c1a-3ecf-e8bb-646a-eaaf975c5813":{"uuid":"12c18c1a-3ecf-e8bb-646a-eaaf975c5813","name_label":"vm.get_pv_kernel","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:12c18c1a-3ecf-e8bb-646a-eaaf975c5813","$type":"role"},"OpaqueRef:fad90582-c075-9587-bf3e-d24d76692ba8":{"uuid":"fad90582-c075-9587-bf3e-d24d76692ba8","name_label":"vm.get_pv_ramdisk","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fad90582-c075-9587-bf3e-d24d76692ba8","$type":"role"},"OpaqueRef:13a11943-2578-a1c5-b1f4-c5e25c5d070f":{"uuid":"13a11943-2578-a1c5-b1f4-c5e25c5d070f","name_label":"vm.get_pv_args","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:13a11943-2578-a1c5-b1f4-c5e25c5d070f","$type":"role"},"OpaqueRef:7a156321-0c6b-a61c-3cda-d9e580d35fbd":{"uuid":"7a156321-0c6b-a61c-3cda-d9e580d35fbd","name_label":"vm.get_pv_bootloader_args","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a156321-0c6b-a61c-3cda-d9e580d35fbd","$type":"role"},"OpaqueRef:b005f138-d13c-ebd2-bdd5-1e4550f3ba91":{"uuid":"b005f138-d13c-ebd2-bdd5-1e4550f3ba91","name_label":"vm.get_pv_legacy_args","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b005f138-d13c-ebd2-bdd5-1e4550f3ba91","$type":"role"},"OpaqueRef:c00d0e92-ac51-2914-ce0f-01292607e440":{"uuid":"c00d0e92-ac51-2914-ce0f-01292607e440","name_label":"vm.get_hvm_boot_policy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c00d0e92-ac51-2914-ce0f-01292607e440","$type":"role"},"OpaqueRef:12dca690-28d3-8620-e4b6-a16beff24246":{"uuid":"12dca690-28d3-8620-e4b6-a16beff24246","name_label":"vm.get_hvm_boot_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:12dca690-28d3-8620-e4b6-a16beff24246","$type":"role"},"OpaqueRef:2d90779e-cf44-eaf2-b452-f843b56b58fe":{"uuid":"2d90779e-cf44-eaf2-b452-f843b56b58fe","name_label":"vm.get_hvm_shadow_multiplier","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2d90779e-cf44-eaf2-b452-f843b56b58fe","$type":"role"},"OpaqueRef:79f576b0-2f82-8786-3ef1-7e90ef0fbd56":{"uuid":"79f576b0-2f82-8786-3ef1-7e90ef0fbd56","name_label":"vm.get_platform","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:79f576b0-2f82-8786-3ef1-7e90ef0fbd56","$type":"role"},"OpaqueRef:9a8e1a97-9547-897b-dddb-5753fc491146":{"uuid":"9a8e1a97-9547-897b-dddb-5753fc491146","name_label":"vm.get_pci_bus","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9a8e1a97-9547-897b-dddb-5753fc491146","$type":"role"},"OpaqueRef:ea2e80cd-54dd-4feb-e266-4c4a8acf47da":{"uuid":"ea2e80cd-54dd-4feb-e266-4c4a8acf47da","name_label":"vm.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ea2e80cd-54dd-4feb-e266-4c4a8acf47da","$type":"role"},"OpaqueRef:1f843368-7d86-3388-f5e1-37e7451690e3":{"uuid":"1f843368-7d86-3388-f5e1-37e7451690e3","name_label":"vm.get_domid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1f843368-7d86-3388-f5e1-37e7451690e3","$type":"role"},"OpaqueRef:612d96c0-c6d3-073f-c3af-a9a471d6372e":{"uuid":"612d96c0-c6d3-073f-c3af-a9a471d6372e","name_label":"vm.get_domarch","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:612d96c0-c6d3-073f-c3af-a9a471d6372e","$type":"role"},"OpaqueRef:6a10a27b-0a5b-721a-3a2a-931542eb779f":{"uuid":"6a10a27b-0a5b-721a-3a2a-931542eb779f","name_label":"vm.get_last_boot_cpu_flags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6a10a27b-0a5b-721a-3a2a-931542eb779f","$type":"role"},"OpaqueRef:c86ce51a-f6ca-5685-503a-e8f988d8f3a1":{"uuid":"c86ce51a-f6ca-5685-503a-e8f988d8f3a1","name_label":"vm.get_is_control_domain","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c86ce51a-f6ca-5685-503a-e8f988d8f3a1","$type":"role"},"OpaqueRef:ee92c33f-0176-2f81-7850-d8274d543cbd":{"uuid":"ee92c33f-0176-2f81-7850-d8274d543cbd","name_label":"vm.get_metrics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ee92c33f-0176-2f81-7850-d8274d543cbd","$type":"role"},"OpaqueRef:05e477c2-6a5d-f53a-ccf3-28f472a19553":{"uuid":"05e477c2-6a5d-f53a-ccf3-28f472a19553","name_label":"vm.get_guest_metrics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:05e477c2-6a5d-f53a-ccf3-28f472a19553","$type":"role"},"OpaqueRef:f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490":{"uuid":"f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490","name_label":"vm.get_last_booted_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490","$type":"role"},"OpaqueRef:40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f":{"uuid":"40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f","name_label":"vm.get_recommendations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f","$type":"role"},"OpaqueRef:654a657c-4f57-0385-b0b5-f11bc085f916":{"uuid":"654a657c-4f57-0385-b0b5-f11bc085f916","name_label":"vm.get_xenstore_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:654a657c-4f57-0385-b0b5-f11bc085f916","$type":"role"},"OpaqueRef:b0d95391-a938-cc75-303e-543e6a5c07a5":{"uuid":"b0d95391-a938-cc75-303e-543e6a5c07a5","name_label":"vm.get_ha_always_run","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b0d95391-a938-cc75-303e-543e6a5c07a5","$type":"role"},"OpaqueRef:a46d2d35-0fdf-7a75-6025-ee689f25773c":{"uuid":"a46d2d35-0fdf-7a75-6025-ee689f25773c","name_label":"vm.get_ha_restart_priority","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a46d2d35-0fdf-7a75-6025-ee689f25773c","$type":"role"},"OpaqueRef:b1dcf01e-9390-4ad1-0f2f-8263dd9476c5":{"uuid":"b1dcf01e-9390-4ad1-0f2f-8263dd9476c5","name_label":"vm.get_is_a_snapshot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b1dcf01e-9390-4ad1-0f2f-8263dd9476c5","$type":"role"},"OpaqueRef:bc55b6ed-c4df-4cf5-2118-8421fca4dfba":{"uuid":"bc55b6ed-c4df-4cf5-2118-8421fca4dfba","name_label":"vm.get_snapshot_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bc55b6ed-c4df-4cf5-2118-8421fca4dfba","$type":"role"},"OpaqueRef:caf63646-b530-624d-9fa6-d6b1ecfb1c82":{"uuid":"caf63646-b530-624d-9fa6-d6b1ecfb1c82","name_label":"vm.get_snapshots","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:caf63646-b530-624d-9fa6-d6b1ecfb1c82","$type":"role"},"OpaqueRef:ab0341ec-b69f-cafb-c519-d7f18a922839":{"uuid":"ab0341ec-b69f-cafb-c519-d7f18a922839","name_label":"vm.get_snapshot_time","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab0341ec-b69f-cafb-c519-d7f18a922839","$type":"role"},"OpaqueRef:398b1e83-6b06-7664-4efb-ee31275c86f7":{"uuid":"398b1e83-6b06-7664-4efb-ee31275c86f7","name_label":"vm.get_transportable_snapshot_id","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:398b1e83-6b06-7664-4efb-ee31275c86f7","$type":"role"},"OpaqueRef:e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333":{"uuid":"e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333","name_label":"vm.get_blobs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333","$type":"role"},"OpaqueRef:15b8f6a0-991c-7089-1ef9-13e4f77e2556":{"uuid":"15b8f6a0-991c-7089-1ef9-13e4f77e2556","name_label":"vm.get_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:15b8f6a0-991c-7089-1ef9-13e4f77e2556","$type":"role"},"OpaqueRef:4a622ed6-a1ca-4eba-7b12-59480d645194":{"uuid":"4a622ed6-a1ca-4eba-7b12-59480d645194","name_label":"vm.get_blocked_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a622ed6-a1ca-4eba-7b12-59480d645194","$type":"role"},"OpaqueRef:61c08156-de47-7f68-035a-7cb5e42de46c":{"uuid":"61c08156-de47-7f68-035a-7cb5e42de46c","name_label":"vm.get_snapshot_info","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:61c08156-de47-7f68-035a-7cb5e42de46c","$type":"role"},"OpaqueRef:7823a440-ae2e-1c9a-d613-1aca2913b5cb":{"uuid":"7823a440-ae2e-1c9a-d613-1aca2913b5cb","name_label":"vm.get_snapshot_metadata","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7823a440-ae2e-1c9a-d613-1aca2913b5cb","$type":"role"},"OpaqueRef:e80dcb82-245c-feaf-ac10-679cabce6713":{"uuid":"e80dcb82-245c-feaf-ac10-679cabce6713","name_label":"vm.get_parent","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e80dcb82-245c-feaf-ac10-679cabce6713","$type":"role"},"OpaqueRef:c7c664cb-1efc-9388-91d0-28100c085aaa":{"uuid":"c7c664cb-1efc-9388-91d0-28100c085aaa","name_label":"vm.get_children","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c7c664cb-1efc-9388-91d0-28100c085aaa","$type":"role"},"OpaqueRef:3f3480e8-c6fc-b6bf-05f0-a6377ab50db1":{"uuid":"3f3480e8-c6fc-b6bf-05f0-a6377ab50db1","name_label":"vm.get_bios_strings","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3f3480e8-c6fc-b6bf-05f0-a6377ab50db1","$type":"role"},"OpaqueRef:b5189a1d-4fd2-8953-ab9d-8b970655f47c":{"uuid":"b5189a1d-4fd2-8953-ab9d-8b970655f47c","name_label":"vm.get_protection_policy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b5189a1d-4fd2-8953-ab9d-8b970655f47c","$type":"role"},"OpaqueRef:02e0b886-32f4-1f25-d83e-6e88ab11e20f":{"uuid":"02e0b886-32f4-1f25-d83e-6e88ab11e20f","name_label":"vm.get_is_snapshot_from_vmpp","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:02e0b886-32f4-1f25-d83e-6e88ab11e20f","$type":"role"},"OpaqueRef:9cd6b930-8313-fbc2-7214-083a6d9ab81c":{"uuid":"9cd6b930-8313-fbc2-7214-083a6d9ab81c","name_label":"vm.get_appliance","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9cd6b930-8313-fbc2-7214-083a6d9ab81c","$type":"role"},"OpaqueRef:92e5a45a-edd9-635c-8929-b4956320c847":{"uuid":"92e5a45a-edd9-635c-8929-b4956320c847","name_label":"vm.get_start_delay","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:92e5a45a-edd9-635c-8929-b4956320c847","$type":"role"},"OpaqueRef:dbc87b09-5539-c8fd-9c4e-0659a7217325":{"uuid":"dbc87b09-5539-c8fd-9c4e-0659a7217325","name_label":"vm.get_shutdown_delay","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dbc87b09-5539-c8fd-9c4e-0659a7217325","$type":"role"},"OpaqueRef:cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f":{"uuid":"cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f","name_label":"vm.get_order","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f","$type":"role"},"OpaqueRef:866c4d54-adbc-cd19-1540-183e7ad9bdd4":{"uuid":"866c4d54-adbc-cd19-1540-183e7ad9bdd4","name_label":"vm.get_vgpus","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:866c4d54-adbc-cd19-1540-183e7ad9bdd4","$type":"role"},"OpaqueRef:43bed9f5-4bb8-551b-8540-922b40e0dd42":{"uuid":"43bed9f5-4bb8-551b-8540-922b40e0dd42","name_label":"vm.get_attached_pcis","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:43bed9f5-4bb8-551b-8540-922b40e0dd42","$type":"role"},"OpaqueRef:d1ff49a6-6866-db73-c3ed-6faeb5460a6f":{"uuid":"d1ff49a6-6866-db73-c3ed-6faeb5460a6f","name_label":"vm.get_suspend_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d1ff49a6-6866-db73-c3ed-6faeb5460a6f","$type":"role"},"OpaqueRef:4c98e491-6bb2-7ce7-460a-3a9471bbd598":{"uuid":"4c98e491-6bb2-7ce7-460a-3a9471bbd598","name_label":"vm.get_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4c98e491-6bb2-7ce7-460a-3a9471bbd598","$type":"role"},"OpaqueRef:9ee4625a-e02c-100a-c621-43852bfa3d29":{"uuid":"9ee4625a-e02c-100a-c621-43852bfa3d29","name_label":"vm.get_generation_id","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9ee4625a-e02c-100a-c621-43852bfa3d29","$type":"role"},"OpaqueRef:a0be8b9a-d205-110e-3d25-525f697490b8":{"uuid":"a0be8b9a-d205-110e-3d25-525f697490b8","name_label":"vm.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a0be8b9a-d205-110e-3d25-525f697490b8","$type":"role"},"OpaqueRef:c236c0c3-35a5-f7a4-59d1-1f7c0b9f3e6a":{"uuid":"c236c0c3-35a5-f7a4-59d1-1f7c0b9f3e6a","name_label":"vm.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c236c0c3-35a5-f7a4-59d1-1f7c0b9f3e6a","$type":"role"},"OpaqueRef:0f24aebf-4e7a-325e-2741-6a1d2058ec31":{"uuid":"0f24aebf-4e7a-325e-2741-6a1d2058ec31","name_label":"vm.set_user_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f24aebf-4e7a-325e-2741-6a1d2058ec31","$type":"role"},"OpaqueRef:16903632-2be2-df6a-f611-5e3c49cbe0dd":{"uuid":"16903632-2be2-df6a-f611-5e3c49cbe0dd","name_label":"vm.set_is_a_template","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:16903632-2be2-df6a-f611-5e3c49cbe0dd","$type":"role"},"OpaqueRef:68842386-54d4-21d0-b374-3868c4195c7d":{"uuid":"68842386-54d4-21d0-b374-3868c4195c7d","name_label":"vm.set_affinity","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:68842386-54d4-21d0-b374-3868c4195c7d","$type":"role"},"OpaqueRef:8ab9b8e5-1b7e-b05f-7889-da1b89be11f8":{"uuid":"8ab9b8e5-1b7e-b05f-7889-da1b89be11f8","name_label":"vm.set_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8ab9b8e5-1b7e-b05f-7889-da1b89be11f8","$type":"role"},"OpaqueRef:f455a71e-e0ba-5da9-3b16-89ad594976cc":{"uuid":"f455a71e-e0ba-5da9-3b16-89ad594976cc","name_label":"vm.add_to_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f455a71e-e0ba-5da9-3b16-89ad594976cc","$type":"role"},"OpaqueRef:f54e4617-9438-c1ba-d8d6-572fac712fb5":{"uuid":"f54e4617-9438-c1ba-d8d6-572fac712fb5","name_label":"vm.remove_from_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f54e4617-9438-c1ba-d8d6-572fac712fb5","$type":"role"},"OpaqueRef:f2495b2a-1230-9278-bebd-93fa6d8b3fbd":{"uuid":"f2495b2a-1230-9278-bebd-93fa6d8b3fbd","name_label":"vm.set_actions_after_shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f2495b2a-1230-9278-bebd-93fa6d8b3fbd","$type":"role"},"OpaqueRef:29ad72a1-9024-a9b4-9224-65f66ba950f5":{"uuid":"29ad72a1-9024-a9b4-9224-65f66ba950f5","name_label":"vm.set_actions_after_reboot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:29ad72a1-9024-a9b4-9224-65f66ba950f5","$type":"role"},"OpaqueRef:1794530b-615b-581c-6a04-f5582a545c32":{"uuid":"1794530b-615b-581c-6a04-f5582a545c32","name_label":"vm.set_actions_after_crash","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1794530b-615b-581c-6a04-f5582a545c32","$type":"role"},"OpaqueRef:845ce175-49cd-1ce3-0ffb-0267ce3afeab":{"uuid":"845ce175-49cd-1ce3-0ffb-0267ce3afeab","name_label":"vm.set_pv_bootloader","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:845ce175-49cd-1ce3-0ffb-0267ce3afeab","$type":"role"},"OpaqueRef:fb9b9a1e-8d10-f254-c1c5-6848f19e82a8":{"uuid":"fb9b9a1e-8d10-f254-c1c5-6848f19e82a8","name_label":"vm.set_pv_kernel","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fb9b9a1e-8d10-f254-c1c5-6848f19e82a8","$type":"role"},"OpaqueRef:a7af6687-e67d-2820-4eb8-d3f45c68f237":{"uuid":"a7af6687-e67d-2820-4eb8-d3f45c68f237","name_label":"vm.set_pv_ramdisk","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a7af6687-e67d-2820-4eb8-d3f45c68f237","$type":"role"},"OpaqueRef:26bf73e8-f349-dba2-a7e9-9eb1e0b182cb":{"uuid":"26bf73e8-f349-dba2-a7e9-9eb1e0b182cb","name_label":"vm.set_pv_args","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:26bf73e8-f349-dba2-a7e9-9eb1e0b182cb","$type":"role"},"OpaqueRef:88f04cd7-9daf-fb60-ec90-720bc2a252c2":{"uuid":"88f04cd7-9daf-fb60-ec90-720bc2a252c2","name_label":"vm.set_pv_bootloader_args","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:88f04cd7-9daf-fb60-ec90-720bc2a252c2","$type":"role"},"OpaqueRef:dffecfb1-e0db-1f2b-87e2-109d72562608":{"uuid":"dffecfb1-e0db-1f2b-87e2-109d72562608","name_label":"vm.set_pv_legacy_args","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dffecfb1-e0db-1f2b-87e2-109d72562608","$type":"role"},"OpaqueRef:aa8f3abf-5f51-8ef1-038c-5f5391c1762e":{"uuid":"aa8f3abf-5f51-8ef1-038c-5f5391c1762e","name_label":"vm.set_hvm_boot_policy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aa8f3abf-5f51-8ef1-038c-5f5391c1762e","$type":"role"},"OpaqueRef:076441c4-1fe6-1681-52eb-5593cd018537":{"uuid":"076441c4-1fe6-1681-52eb-5593cd018537","name_label":"vm.set_hvm_boot_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:076441c4-1fe6-1681-52eb-5593cd018537","$type":"role"},"OpaqueRef:b55d8910-9487-9485-5408-06d3a0232abc":{"uuid":"b55d8910-9487-9485-5408-06d3a0232abc","name_label":"vm.add_to_hvm_boot_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b55d8910-9487-9485-5408-06d3a0232abc","$type":"role"},"OpaqueRef:13aef116-19fe-3a1f-2041-41f5a1a41e3d":{"uuid":"13aef116-19fe-3a1f-2041-41f5a1a41e3d","name_label":"vm.remove_from_hvm_boot_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:13aef116-19fe-3a1f-2041-41f5a1a41e3d","$type":"role"},"OpaqueRef:c4739e90-efac-29be-27ee-b40047d88653":{"uuid":"c4739e90-efac-29be-27ee-b40047d88653","name_label":"vm.set_platform","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c4739e90-efac-29be-27ee-b40047d88653","$type":"role"},"OpaqueRef:e5ab4d36-a5f8-3a95-ee23-281c9e16974f":{"uuid":"e5ab4d36-a5f8-3a95-ee23-281c9e16974f","name_label":"vm.add_to_platform","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e5ab4d36-a5f8-3a95-ee23-281c9e16974f","$type":"role"},"OpaqueRef:81fd4de4-5bbc-7ba4-c2b9-8d2cf7e80974":{"uuid":"81fd4de4-5bbc-7ba4-c2b9-8d2cf7e80974","name_label":"vm.remove_from_platform","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:81fd4de4-5bbc-7ba4-c2b9-8d2cf7e80974","$type":"role"},"OpaqueRef:4fd7812c-7d30-e97e-73fd-f428da986071":{"uuid":"4fd7812c-7d30-e97e-73fd-f428da986071","name_label":"vm.set_pci_bus","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4fd7812c-7d30-e97e-73fd-f428da986071","$type":"role"},"OpaqueRef:45182b24-24c6-6a9c-01c3-49ac4a6bfb04":{"uuid":"45182b24-24c6-6a9c-01c3-49ac4a6bfb04","name_label":"vm.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:45182b24-24c6-6a9c-01c3-49ac4a6bfb04","$type":"role"},"OpaqueRef:b4c7644e-ca1d-c511-fba7-3f7474dae079":{"uuid":"b4c7644e-ca1d-c511-fba7-3f7474dae079","name_label":"vm.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b4c7644e-ca1d-c511-fba7-3f7474dae079","$type":"role"},"OpaqueRef:f6d2378d-a45b-bb77-a6d6-488805be984a":{"uuid":"f6d2378d-a45b-bb77-a6d6-488805be984a","name_label":"vm.add_to_other_config/key:pci","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f6d2378d-a45b-bb77-a6d6-488805be984a","$type":"role"},"OpaqueRef:bf77e796-59d3-18c0-116e-a30e514e47ef":{"uuid":"bf77e796-59d3-18c0-116e-a30e514e47ef","name_label":"vm.add_to_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bf77e796-59d3-18c0-116e-a30e514e47ef","$type":"role"},"OpaqueRef:c70f5e19-5cc8-09b0-900e-752d10caae49":{"uuid":"c70f5e19-5cc8-09b0-900e-752d10caae49","name_label":"vm.add_to_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c70f5e19-5cc8-09b0-900e-752d10caae49","$type":"role"},"OpaqueRef:ab44acd6-dc9d-6533-3e96-eeb6690c03ab":{"uuid":"ab44acd6-dc9d-6533-3e96-eeb6690c03ab","name_label":"vm.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab44acd6-dc9d-6533-3e96-eeb6690c03ab","$type":"role"},"OpaqueRef:95099189-9466-a620-d7d1-455aa85aa89f":{"uuid":"95099189-9466-a620-d7d1-455aa85aa89f","name_label":"vm.remove_from_other_config/key:pci","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:95099189-9466-a620-d7d1-455aa85aa89f","$type":"role"},"OpaqueRef:67bfa576-0e16-1fbc-3916-7c7258702d23":{"uuid":"67bfa576-0e16-1fbc-3916-7c7258702d23","name_label":"vm.remove_from_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:67bfa576-0e16-1fbc-3916-7c7258702d23","$type":"role"},"OpaqueRef:181f66ab-cc92-1fc8-b3a9-8b4bb1f74acf":{"uuid":"181f66ab-cc92-1fc8-b3a9-8b4bb1f74acf","name_label":"vm.remove_from_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:181f66ab-cc92-1fc8-b3a9-8b4bb1f74acf","$type":"role"},"OpaqueRef:cae4947e-dfd0-ceef-f8e6-7de4e4596a0e":{"uuid":"cae4947e-dfd0-ceef-f8e6-7de4e4596a0e","name_label":"vm.set_recommendations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cae4947e-dfd0-ceef-f8e6-7de4e4596a0e","$type":"role"},"OpaqueRef:f48b609b-4cbe-b22b-5240-10d3b4df505a":{"uuid":"f48b609b-4cbe-b22b-5240-10d3b4df505a","name_label":"vm.set_xenstore_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f48b609b-4cbe-b22b-5240-10d3b4df505a","$type":"role"},"OpaqueRef:19a7222c-dbb7-e646-6160-c30e82608772":{"uuid":"19a7222c-dbb7-e646-6160-c30e82608772","name_label":"vm.add_to_xenstore_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:19a7222c-dbb7-e646-6160-c30e82608772","$type":"role"},"OpaqueRef:b1203245-34c3-7026-c290-d998c5e94b69":{"uuid":"b1203245-34c3-7026-c290-d998c5e94b69","name_label":"vm.remove_from_xenstore_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b1203245-34c3-7026-c290-d998c5e94b69","$type":"role"},"OpaqueRef:7a3744a6-02a0-fe82-1201-31301aea1f2f":{"uuid":"7a3744a6-02a0-fe82-1201-31301aea1f2f","name_label":"vm.set_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a3744a6-02a0-fe82-1201-31301aea1f2f","$type":"role"},"OpaqueRef:d24ca751-b516-edff-736c-3e6b0719115b":{"uuid":"d24ca751-b516-edff-736c-3e6b0719115b","name_label":"vm.add_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d24ca751-b516-edff-736c-3e6b0719115b","$type":"role"},"OpaqueRef:f458e427-5928-9057-c219-df99153fc075":{"uuid":"f458e427-5928-9057-c219-df99153fc075","name_label":"vm.remove_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f458e427-5928-9057-c219-df99153fc075","$type":"role"},"OpaqueRef:895c0c2e-8b08-ed68-e7c9-c2ca8ebea573":{"uuid":"895c0c2e-8b08-ed68-e7c9-c2ca8ebea573","name_label":"vm.set_blocked_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:895c0c2e-8b08-ed68-e7c9-c2ca8ebea573","$type":"role"},"OpaqueRef:0653de2c-ffd3-554f-d7be-1ecd0e140093":{"uuid":"0653de2c-ffd3-554f-d7be-1ecd0e140093","name_label":"vm.add_to_blocked_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0653de2c-ffd3-554f-d7be-1ecd0e140093","$type":"role"},"OpaqueRef:d1d95133-7aad-02fb-0ef4-0e3553fbfe1a":{"uuid":"d1d95133-7aad-02fb-0ef4-0e3553fbfe1a","name_label":"vm.remove_from_blocked_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d1d95133-7aad-02fb-0ef4-0e3553fbfe1a","$type":"role"},"OpaqueRef:e215abe9-6d54-dc46-ed03-61829c477270":{"uuid":"e215abe9-6d54-dc46-ed03-61829c477270","name_label":"vm.set_suspend_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e215abe9-6d54-dc46-ed03-61829c477270","$type":"role"},"OpaqueRef:06044457-78bd-e927-7926-06cd6cda2dc8":{"uuid":"06044457-78bd-e927-7926-06cd6cda2dc8","name_label":"vm.snapshot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:06044457-78bd-e927-7926-06cd6cda2dc8","$type":"role"},"OpaqueRef:f6424fe6-db32-cf8e-e2d1-b5e570812e12":{"uuid":"f6424fe6-db32-cf8e-e2d1-b5e570812e12","name_label":"vm.snapshot_with_quiesce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f6424fe6-db32-cf8e-e2d1-b5e570812e12","$type":"role"},"OpaqueRef:7fa1e0d6-4301-86d3-f678-989f56a7f9e5":{"uuid":"7fa1e0d6-4301-86d3-f678-989f56a7f9e5","name_label":"vm.clone","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7fa1e0d6-4301-86d3-f678-989f56a7f9e5","$type":"role"},"OpaqueRef:4e458b99-04ca-4759-4f2b-25943a270d11":{"uuid":"4e458b99-04ca-4759-4f2b-25943a270d11","name_label":"vm.copy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4e458b99-04ca-4759-4f2b-25943a270d11","$type":"role"},"OpaqueRef:3a33c68f-e787-39c5-568b-9ed6c00f64ba":{"uuid":"3a33c68f-e787-39c5-568b-9ed6c00f64ba","name_label":"vm.revert","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3a33c68f-e787-39c5-568b-9ed6c00f64ba","$type":"role"},"OpaqueRef:ad25d5f7-52e3-29a6-3e54-9e8b0cdfe8b2":{"uuid":"ad25d5f7-52e3-29a6-3e54-9e8b0cdfe8b2","name_label":"vm.checkpoint","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ad25d5f7-52e3-29a6-3e54-9e8b0cdfe8b2","$type":"role"},"OpaqueRef:0f9a4bd3-1ac7-0694-d293-5b5cdd3a96d1":{"uuid":"0f9a4bd3-1ac7-0694-d293-5b5cdd3a96d1","name_label":"vm.provision","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f9a4bd3-1ac7-0694-d293-5b5cdd3a96d1","$type":"role"},"OpaqueRef:24b924aa-926c-879e-d2c1-fe778e82ccee":{"uuid":"24b924aa-926c-879e-d2c1-fe778e82ccee","name_label":"vm.start","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:24b924aa-926c-879e-d2c1-fe778e82ccee","$type":"role"},"OpaqueRef:b91518fe-0a95-4001-8b10-34e30581fdef":{"uuid":"b91518fe-0a95-4001-8b10-34e30581fdef","name_label":"vm.start_on","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b91518fe-0a95-4001-8b10-34e30581fdef","$type":"role"},"OpaqueRef:b6096493-b47b-3bc4-a9b9-6d670a304017":{"uuid":"b6096493-b47b-3bc4-a9b9-6d670a304017","name_label":"vm.pause","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b6096493-b47b-3bc4-a9b9-6d670a304017","$type":"role"},"OpaqueRef:4788c0d8-8cc1-11b0-c43c-0ea2b02689b8":{"uuid":"4788c0d8-8cc1-11b0-c43c-0ea2b02689b8","name_label":"vm.unpause","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4788c0d8-8cc1-11b0-c43c-0ea2b02689b8","$type":"role"},"OpaqueRef:60d79042-e0b2-74fb-5fc3-25ff0e9f200b":{"uuid":"60d79042-e0b2-74fb-5fc3-25ff0e9f200b","name_label":"vm.clean_shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:60d79042-e0b2-74fb-5fc3-25ff0e9f200b","$type":"role"},"OpaqueRef:0391a375-885e-a621-2ed0-c5a05e6ba6d1":{"uuid":"0391a375-885e-a621-2ed0-c5a05e6ba6d1","name_label":"vm.shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0391a375-885e-a621-2ed0-c5a05e6ba6d1","$type":"role"},"OpaqueRef:e0953596-a798-5359-5ae9-dc7d3cc23411":{"uuid":"e0953596-a798-5359-5ae9-dc7d3cc23411","name_label":"vm.clean_reboot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e0953596-a798-5359-5ae9-dc7d3cc23411","$type":"role"},"OpaqueRef:0c318a73-1355-8297-1aa7-7b59652d83eb":{"uuid":"0c318a73-1355-8297-1aa7-7b59652d83eb","name_label":"vm.hard_shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0c318a73-1355-8297-1aa7-7b59652d83eb","$type":"role"},"OpaqueRef:606aa02e-97ba-211c-ec38-d06b1ef5ed89":{"uuid":"606aa02e-97ba-211c-ec38-d06b1ef5ed89","name_label":"vm.power_state_reset","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:606aa02e-97ba-211c-ec38-d06b1ef5ed89","$type":"role"},"OpaqueRef:499c5989-c80a-2567-6f8b-50b0cf1f569a":{"uuid":"499c5989-c80a-2567-6f8b-50b0cf1f569a","name_label":"vm.hard_reboot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:499c5989-c80a-2567-6f8b-50b0cf1f569a","$type":"role"},"OpaqueRef:0054aad9-6816-61a5-593d-ffcf68fe7c51":{"uuid":"0054aad9-6816-61a5-593d-ffcf68fe7c51","name_label":"vm.suspend","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0054aad9-6816-61a5-593d-ffcf68fe7c51","$type":"role"},"OpaqueRef:4f62cf52-b15f-d722-3b4d-51a9c67ecf9a":{"uuid":"4f62cf52-b15f-d722-3b4d-51a9c67ecf9a","name_label":"vm.csvm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f62cf52-b15f-d722-3b4d-51a9c67ecf9a","$type":"role"},"OpaqueRef:80305d17-0b56-9f66-6d8c-40abe30a928a":{"uuid":"80305d17-0b56-9f66-6d8c-40abe30a928a","name_label":"vm.resume","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:80305d17-0b56-9f66-6d8c-40abe30a928a","$type":"role"},"OpaqueRef:0d61beaa-950d-ce01-5971-cd55d77d0270":{"uuid":"0d61beaa-950d-ce01-5971-cd55d77d0270","name_label":"vm.resume_on","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0d61beaa-950d-ce01-5971-cd55d77d0270","$type":"role"},"OpaqueRef:db89f0c4-5678-d02c-dbc9-ade235685c16":{"uuid":"db89f0c4-5678-d02c-dbc9-ade235685c16","name_label":"vm.pool_migrate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:db89f0c4-5678-d02c-dbc9-ade235685c16","$type":"role"},"OpaqueRef:9a38b098-e1d0-7721-6817-e74d3cc63321":{"uuid":"9a38b098-e1d0-7721-6817-e74d3cc63321","name_label":"vm.pool_migrate_complete","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9a38b098-e1d0-7721-6817-e74d3cc63321","$type":"role"},"OpaqueRef:7ff61b17-b047-7486-b476-3a46d8a3f5dc":{"uuid":"7ff61b17-b047-7486-b476-3a46d8a3f5dc","name_label":"vm.set_vcpus_number_live","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7ff61b17-b047-7486-b476-3a46d8a3f5dc","$type":"role"},"OpaqueRef:7e213280-e967-f94d-2663-7c0cd886aa71":{"uuid":"7e213280-e967-f94d-2663-7c0cd886aa71","name_label":"vm.add_to_vcpus_params_live","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7e213280-e967-f94d-2663-7c0cd886aa71","$type":"role"},"OpaqueRef:196a22a7-3dab-e13d-19da-0e143da24513":{"uuid":"196a22a7-3dab-e13d-19da-0e143da24513","name_label":"vm.set_ha_restart_priority","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:196a22a7-3dab-e13d-19da-0e143da24513","$type":"role"},"OpaqueRef:434c57c4-d929-3bbc-e5e1-7549250f96a4":{"uuid":"434c57c4-d929-3bbc-e5e1-7549250f96a4","name_label":"vm.set_ha_always_run","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:434c57c4-d929-3bbc-e5e1-7549250f96a4","$type":"role"},"OpaqueRef:d443b5d9-94b5-50ce-a635-1ca03b81bcb7":{"uuid":"d443b5d9-94b5-50ce-a635-1ca03b81bcb7","name_label":"vm.compute_memory_overhead","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d443b5d9-94b5-50ce-a635-1ca03b81bcb7","$type":"role"},"OpaqueRef:3904db64-cf40-5c0d-9dfd-f97f8a5c4746":{"uuid":"3904db64-cf40-5c0d-9dfd-f97f8a5c4746","name_label":"vm.set_memory_dynamic_max","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3904db64-cf40-5c0d-9dfd-f97f8a5c4746","$type":"role"},"OpaqueRef:73494c5b-8e2d-5a6e-ffe3-1b7b7bc64370":{"uuid":"73494c5b-8e2d-5a6e-ffe3-1b7b7bc64370","name_label":"vm.set_memory_dynamic_min","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:73494c5b-8e2d-5a6e-ffe3-1b7b7bc64370","$type":"role"},"OpaqueRef:bfac8769-a392-43a1-ee61-7efe606bddbd":{"uuid":"bfac8769-a392-43a1-ee61-7efe606bddbd","name_label":"vm.set_memory_dynamic_range","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bfac8769-a392-43a1-ee61-7efe606bddbd","$type":"role"},"OpaqueRef:1330c0d2-46d4-907c-dc55-725b8eea1b3e":{"uuid":"1330c0d2-46d4-907c-dc55-725b8eea1b3e","name_label":"vm.set_memory_static_max","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1330c0d2-46d4-907c-dc55-725b8eea1b3e","$type":"role"},"OpaqueRef:49fbebcc-02ad-db79-cfb4-b3785cd53591":{"uuid":"49fbebcc-02ad-db79-cfb4-b3785cd53591","name_label":"vm.set_memory_static_min","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:49fbebcc-02ad-db79-cfb4-b3785cd53591","$type":"role"},"OpaqueRef:2c2b24ff-c9f5-e38c-ca9e-f3301fb492d5":{"uuid":"2c2b24ff-c9f5-e38c-ca9e-f3301fb492d5","name_label":"vm.set_memory_static_range","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2c2b24ff-c9f5-e38c-ca9e-f3301fb492d5","$type":"role"},"OpaqueRef:ae7f81c8-3176-2c9b-98b2-0860a8df1037":{"uuid":"ae7f81c8-3176-2c9b-98b2-0860a8df1037","name_label":"vm.set_memory_limits","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ae7f81c8-3176-2c9b-98b2-0860a8df1037","$type":"role"},"OpaqueRef:9be81833-9377-e63c-a52b-84bf2885644d":{"uuid":"9be81833-9377-e63c-a52b-84bf2885644d","name_label":"vm.set_memory_target_live","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9be81833-9377-e63c-a52b-84bf2885644d","$type":"role"},"OpaqueRef:ac16b434-b718-b77f-e797-4c8032c9a21b":{"uuid":"ac16b434-b718-b77f-e797-4c8032c9a21b","name_label":"vm.wait_memory_target_live","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ac16b434-b718-b77f-e797-4c8032c9a21b","$type":"role"},"OpaqueRef:de8bf714-f486-251e-f6f5-e566b8de1a9e":{"uuid":"de8bf714-f486-251e-f6f5-e566b8de1a9e","name_label":"vm.get_cooperative","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:de8bf714-f486-251e-f6f5-e566b8de1a9e","$type":"role"},"OpaqueRef:4f02c846-8a2c-b20c-9641-9f8019ccfe23":{"uuid":"4f02c846-8a2c-b20c-9641-9f8019ccfe23","name_label":"vm.set_hvm_shadow_multiplier","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f02c846-8a2c-b20c-9641-9f8019ccfe23","$type":"role"},"OpaqueRef:5eda22ca-411c-59df-3c2d-e8c40ee2a641":{"uuid":"5eda22ca-411c-59df-3c2d-e8c40ee2a641","name_label":"vm.set_shadow_multiplier_live","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5eda22ca-411c-59df-3c2d-e8c40ee2a641","$type":"role"},"OpaqueRef:a23b22f9-bca1-caab-136d-9d1c6ee976b1":{"uuid":"a23b22f9-bca1-caab-136d-9d1c6ee976b1","name_label":"vm.set_vcpus_max","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a23b22f9-bca1-caab-136d-9d1c6ee976b1","$type":"role"},"OpaqueRef:5b776f2e-a041-f093-8497-48c16883f061":{"uuid":"5b776f2e-a041-f093-8497-48c16883f061","name_label":"vm.set_vcpus_at_startup","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5b776f2e-a041-f093-8497-48c16883f061","$type":"role"},"OpaqueRef:1ede96f4-2e64-10e5-2e6d-17910d2cc719":{"uuid":"1ede96f4-2e64-10e5-2e6d-17910d2cc719","name_label":"vm.send_sysrq","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1ede96f4-2e64-10e5-2e6d-17910d2cc719","$type":"role"},"OpaqueRef:8441d718-7ef2-b325-bf57-e30dc4db816f":{"uuid":"8441d718-7ef2-b325-bf57-e30dc4db816f","name_label":"vm.send_trigger","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8441d718-7ef2-b325-bf57-e30dc4db816f","$type":"role"},"OpaqueRef:b58c1211-94fb-cc3f-668f-9c64343d5ef6":{"uuid":"b58c1211-94fb-cc3f-668f-9c64343d5ef6","name_label":"vm.maximise_memory","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b58c1211-94fb-cc3f-668f-9c64343d5ef6","$type":"role"},"OpaqueRef:f91b4e6e-e238-9fad-e78a-a61f6c222122":{"uuid":"f91b4e6e-e238-9fad-e78a-a61f6c222122","name_label":"vm.migrate_send","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f91b4e6e-e238-9fad-e78a-a61f6c222122","$type":"role"},"OpaqueRef:2c3326c9-127f-aee9-2e6b-520465156ca9":{"uuid":"2c3326c9-127f-aee9-2e6b-520465156ca9","name_label":"vm.assert_can_migrate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2c3326c9-127f-aee9-2e6b-520465156ca9","$type":"role"},"OpaqueRef:d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0":{"uuid":"d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0","name_label":"vm.get_boot_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0","$type":"role"},"OpaqueRef:da44ea34-34ce-eee1-0fe5-e2fbd374087c":{"uuid":"da44ea34-34ce-eee1-0fe5-e2fbd374087c","name_label":"vm.get_data_sources","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:da44ea34-34ce-eee1-0fe5-e2fbd374087c","$type":"role"},"OpaqueRef:291376bb-00a4-4520-d42b-6fc685798827":{"uuid":"291376bb-00a4-4520-d42b-6fc685798827","name_label":"vm.record_data_source","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:291376bb-00a4-4520-d42b-6fc685798827","$type":"role"},"OpaqueRef:c0eeaefd-fce4-4122-bf5f-6548c7627ecd":{"uuid":"c0eeaefd-fce4-4122-bf5f-6548c7627ecd","name_label":"vm.query_data_source","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c0eeaefd-fce4-4122-bf5f-6548c7627ecd","$type":"role"},"OpaqueRef:c76febe4-ccb8-b0f6-d9f3-eddfb8068cbe":{"uuid":"c76febe4-ccb8-b0f6-d9f3-eddfb8068cbe","name_label":"vm.forget_data_source_archives","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c76febe4-ccb8-b0f6-d9f3-eddfb8068cbe","$type":"role"},"OpaqueRef:0a6ea798-3a27-ebde-9356-6cdd5aa0af1c":{"uuid":"0a6ea798-3a27-ebde-9356-6cdd5aa0af1c","name_label":"vm.assert_operation_valid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0a6ea798-3a27-ebde-9356-6cdd5aa0af1c","$type":"role"},"OpaqueRef:ff848eeb-fe92-c7b0-9a93-177287cc1871":{"uuid":"ff848eeb-fe92-c7b0-9a93-177287cc1871","name_label":"vm.update_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ff848eeb-fe92-c7b0-9a93-177287cc1871","$type":"role"},"OpaqueRef:4eb6785b-2126-b2f8-2c55-f5a0b59694e9":{"uuid":"4eb6785b-2126-b2f8-2c55-f5a0b59694e9","name_label":"vm.get_allowed_vbd_devices","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4eb6785b-2126-b2f8-2c55-f5a0b59694e9","$type":"role"},"OpaqueRef:f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473":{"uuid":"f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473","name_label":"vm.get_allowed_vif_devices","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473","$type":"role"},"OpaqueRef:7862cac7-5a00-3e1c-fa98-1ccad464efde":{"uuid":"7862cac7-5a00-3e1c-fa98-1ccad464efde","name_label":"vm.get_possible_hosts","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7862cac7-5a00-3e1c-fa98-1ccad464efde","$type":"role"},"OpaqueRef:7afd9229-b870-bc5f-9dd0-c8e3aae1edd8":{"uuid":"7afd9229-b870-bc5f-9dd0-c8e3aae1edd8","name_label":"vm.assert_can_boot_here","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7afd9229-b870-bc5f-9dd0-c8e3aae1edd8","$type":"role"},"OpaqueRef:222b2a69-0e63-09d7-7547-63753f22a07e":{"uuid":"222b2a69-0e63-09d7-7547-63753f22a07e","name_label":"vm.create_new_blob","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:222b2a69-0e63-09d7-7547-63753f22a07e","$type":"role"},"OpaqueRef:ab13cd53-fee2-e913-c1d5-d8a73d183c04":{"uuid":"ab13cd53-fee2-e913-c1d5-d8a73d183c04","name_label":"vm.s3_suspend","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab13cd53-fee2-e913-c1d5-d8a73d183c04","$type":"role"},"OpaqueRef:50c826b9-553f-0f9d-6ec5-e56c4bfc700e":{"uuid":"50c826b9-553f-0f9d-6ec5-e56c4bfc700e","name_label":"vm.s3_resume","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:50c826b9-553f-0f9d-6ec5-e56c4bfc700e","$type":"role"},"OpaqueRef:dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9":{"uuid":"dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9","name_label":"vm.assert_agile","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9","$type":"role"},"OpaqueRef:f24bf12d-005b-9aa6-7a45-1007eb1d8d47":{"uuid":"f24bf12d-005b-9aa6-7a45-1007eb1d8d47","name_label":"vm.update_snapshot_metadata","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f24bf12d-005b-9aa6-7a45-1007eb1d8d47","$type":"role"},"OpaqueRef:e558eee8-cc61-ab94-2838-d11ecb19b9de":{"uuid":"e558eee8-cc61-ab94-2838-d11ecb19b9de","name_label":"vm.retrieve_wlb_recommendations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e558eee8-cc61-ab94-2838-d11ecb19b9de","$type":"role"},"OpaqueRef:f0b68388-4ffe-ae16-785c-73bf1daf76de":{"uuid":"f0b68388-4ffe-ae16-785c-73bf1daf76de","name_label":"vm.copy_bios_strings","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f0b68388-4ffe-ae16-785c-73bf1daf76de","$type":"role"},"OpaqueRef:171d112c-db97-c8ca-5322-c06f3b95f987":{"uuid":"171d112c-db97-c8ca-5322-c06f3b95f987","name_label":"vm.set_protection_policy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:171d112c-db97-c8ca-5322-c06f3b95f987","$type":"role"},"OpaqueRef:943b87d0-c97d-9dc3-4861-4cd3405d2166":{"uuid":"943b87d0-c97d-9dc3-4861-4cd3405d2166","name_label":"vm.set_start_delay","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:943b87d0-c97d-9dc3-4861-4cd3405d2166","$type":"role"},"OpaqueRef:562072f2-255d-6b53-1f30-4665c151ba36":{"uuid":"562072f2-255d-6b53-1f30-4665c151ba36","name_label":"vm.set_shutdown_delay","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:562072f2-255d-6b53-1f30-4665c151ba36","$type":"role"},"OpaqueRef:ce7d44fe-5019-f0e1-c44b-284d048b53ab":{"uuid":"ce7d44fe-5019-f0e1-c44b-284d048b53ab","name_label":"vm.set_order","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ce7d44fe-5019-f0e1-c44b-284d048b53ab","$type":"role"},"OpaqueRef:889dd3b9-5554-3819-b5fa-1853a3527d33":{"uuid":"889dd3b9-5554-3819-b5fa-1853a3527d33","name_label":"vm.set_suspend_vdi","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:889dd3b9-5554-3819-b5fa-1853a3527d33","$type":"role"},"OpaqueRef:cca9c4ef-8dc4-3928-6973-1001fefddcc1":{"uuid":"cca9c4ef-8dc4-3928-6973-1001fefddcc1","name_label":"vm.assert_can_be_recovered","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cca9c4ef-8dc4-3928-6973-1001fefddcc1","$type":"role"},"OpaqueRef:1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb":{"uuid":"1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb","name_label":"vm.recover","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb","$type":"role"},"OpaqueRef:bb0a41c6-9f17-3373-fceb-43ef16b241b5":{"uuid":"bb0a41c6-9f17-3373-fceb-43ef16b241b5","name_label":"vm.import_convert","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb0a41c6-9f17-3373-fceb-43ef16b241b5","$type":"role"},"OpaqueRef:40c692b1-cd75-58f2-1bbf-47972787d296":{"uuid":"40c692b1-cd75-58f2-1bbf-47972787d296","name_label":"vm.set_appliance","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:40c692b1-cd75-58f2-1bbf-47972787d296","$type":"role"},"OpaqueRef:829881ed-22e8-99eb-6180-689a1d01d1ac":{"uuid":"829881ed-22e8-99eb-6180-689a1d01d1ac","name_label":"vm.query_services","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:829881ed-22e8-99eb-6180-689a1d01d1ac","$type":"role"},"OpaqueRef:78595ea9-9a7b-2bb2-b7ac-888947bb5f71":{"uuid":"78595ea9-9a7b-2bb2-b7ac-888947bb5f71","name_label":"vm.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:78595ea9-9a7b-2bb2-b7ac-888947bb5f71","$type":"role"},"OpaqueRef:05540a9b-fd89-62d4-15c2-569bb74a45c9":{"uuid":"05540a9b-fd89-62d4-15c2-569bb74a45c9","name_label":"vm.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:05540a9b-fd89-62d4-15c2-569bb74a45c9","$type":"role"},"OpaqueRef:8624fdc6-5a79-3477-2f2b-a692d687856f":{"uuid":"8624fdc6-5a79-3477-2f2b-a692d687856f","name_label":"vm.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8624fdc6-5a79-3477-2f2b-a692d687856f","$type":"role"},"OpaqueRef:6c868e70-45f5-7510-e697-31565da1b645":{"uuid":"6c868e70-45f5-7510-e697-31565da1b645","name_label":"vm_metrics.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6c868e70-45f5-7510-e697-31565da1b645","$type":"role"},"OpaqueRef:50baf2ac-cd2d-8c58-6b49-7d922a38d506":{"uuid":"50baf2ac-cd2d-8c58-6b49-7d922a38d506","name_label":"vm_metrics.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:50baf2ac-cd2d-8c58-6b49-7d922a38d506","$type":"role"},"OpaqueRef:b8d7db71-88c3-3973-0f76-afb5ea8758b2":{"uuid":"b8d7db71-88c3-3973-0f76-afb5ea8758b2","name_label":"vm_metrics.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b8d7db71-88c3-3973-0f76-afb5ea8758b2","$type":"role"},"OpaqueRef:b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa":{"uuid":"b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa","name_label":"vm_metrics.get_memory_actual","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa","$type":"role"},"OpaqueRef:c7b3adec-b936-8480-8162-4d0176e80494":{"uuid":"c7b3adec-b936-8480-8162-4d0176e80494","name_label":"vm_metrics.get_vcpus_number","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c7b3adec-b936-8480-8162-4d0176e80494","$type":"role"},"OpaqueRef:1611b4a5-6d76-0608-be83-bb85cc0f4401":{"uuid":"1611b4a5-6d76-0608-be83-bb85cc0f4401","name_label":"vm_metrics.get_vcpus_utilisation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1611b4a5-6d76-0608-be83-bb85cc0f4401","$type":"role"},"OpaqueRef:76add74c-9a76-ec09-e9ba-062f5fad673a":{"uuid":"76add74c-9a76-ec09-e9ba-062f5fad673a","name_label":"vm_metrics.get_vcpus_cpu","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:76add74c-9a76-ec09-e9ba-062f5fad673a","$type":"role"},"OpaqueRef:1eb1cfda-f398-99f9-2b7b-5a186bfb5769":{"uuid":"1eb1cfda-f398-99f9-2b7b-5a186bfb5769","name_label":"vm_metrics.get_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1eb1cfda-f398-99f9-2b7b-5a186bfb5769","$type":"role"},"OpaqueRef:48e48870-e314-22ff-23e7-9c81e0a09de8":{"uuid":"48e48870-e314-22ff-23e7-9c81e0a09de8","name_label":"vm_metrics.get_vcpus_flags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:48e48870-e314-22ff-23e7-9c81e0a09de8","$type":"role"},"OpaqueRef:6b99cb7e-9854-bbfe-13c4-23c85b58cd27":{"uuid":"6b99cb7e-9854-bbfe-13c4-23c85b58cd27","name_label":"vm_metrics.get_state","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6b99cb7e-9854-bbfe-13c4-23c85b58cd27","$type":"role"},"OpaqueRef:3b17375c-d99f-b75d-771a-d6bd526bc732":{"uuid":"3b17375c-d99f-b75d-771a-d6bd526bc732","name_label":"vm_metrics.get_start_time","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3b17375c-d99f-b75d-771a-d6bd526bc732","$type":"role"},"OpaqueRef:330de495-5f10-90ae-9985-a622287978cd":{"uuid":"330de495-5f10-90ae-9985-a622287978cd","name_label":"vm_metrics.get_install_time","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:330de495-5f10-90ae-9985-a622287978cd","$type":"role"},"OpaqueRef:6950f134-0be9-1cf8-a418-b84f72b5c550":{"uuid":"6950f134-0be9-1cf8-a418-b84f72b5c550","name_label":"vm_metrics.get_last_updated","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6950f134-0be9-1cf8-a418-b84f72b5c550","$type":"role"},"OpaqueRef:2da47eda-326e-bc79-2991-4178a7f91aa2":{"uuid":"2da47eda-326e-bc79-2991-4178a7f91aa2","name_label":"vm_metrics.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2da47eda-326e-bc79-2991-4178a7f91aa2","$type":"role"},"OpaqueRef:d3e10235-4c09-4b21-ac38-f5e7118ace9a":{"uuid":"d3e10235-4c09-4b21-ac38-f5e7118ace9a","name_label":"vm_metrics.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d3e10235-4c09-4b21-ac38-f5e7118ace9a","$type":"role"},"OpaqueRef:1cb862c1-6e27-7e9a-1757-d3340ce05a6a":{"uuid":"1cb862c1-6e27-7e9a-1757-d3340ce05a6a","name_label":"vm_metrics.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1cb862c1-6e27-7e9a-1757-d3340ce05a6a","$type":"role"},"OpaqueRef:4bf0efdd-5a06-f1f2-9e42-235746e68e72":{"uuid":"4bf0efdd-5a06-f1f2-9e42-235746e68e72","name_label":"vm_metrics.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4bf0efdd-5a06-f1f2-9e42-235746e68e72","$type":"role"},"OpaqueRef:07e67067-0db3-473e-f720-1b13cb7165cb":{"uuid":"07e67067-0db3-473e-f720-1b13cb7165cb","name_label":"vm_metrics.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:07e67067-0db3-473e-f720-1b13cb7165cb","$type":"role"},"OpaqueRef:59d3a529-afca-f562-204f-bc882519cfc6":{"uuid":"59d3a529-afca-f562-204f-bc882519cfc6","name_label":"vm_metrics.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:59d3a529-afca-f562-204f-bc882519cfc6","$type":"role"},"OpaqueRef:6745eaf1-b724-7ba1-6adc-6714d87ed055":{"uuid":"6745eaf1-b724-7ba1-6adc-6714d87ed055","name_label":"vm_metrics.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6745eaf1-b724-7ba1-6adc-6714d87ed055","$type":"role"},"OpaqueRef:fb5f1cd9-639c-fe4e-736e-59f602bd6769":{"uuid":"fb5f1cd9-639c-fe4e-736e-59f602bd6769","name_label":"vm_guest_metrics.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fb5f1cd9-639c-fe4e-736e-59f602bd6769","$type":"role"},"OpaqueRef:63f5ab90-88e3-b9c7-869a-ad1e4725f6c8":{"uuid":"63f5ab90-88e3-b9c7-869a-ad1e4725f6c8","name_label":"vm_guest_metrics.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:63f5ab90-88e3-b9c7-869a-ad1e4725f6c8","$type":"role"},"OpaqueRef:8b2811fe-bf52-d656-379d-c4dc786d2863":{"uuid":"8b2811fe-bf52-d656-379d-c4dc786d2863","name_label":"vm_guest_metrics.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8b2811fe-bf52-d656-379d-c4dc786d2863","$type":"role"},"OpaqueRef:f075184a-6d67-aeee-23f9-4af9fb3fdc70":{"uuid":"f075184a-6d67-aeee-23f9-4af9fb3fdc70","name_label":"vm_guest_metrics.get_os_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f075184a-6d67-aeee-23f9-4af9fb3fdc70","$type":"role"},"OpaqueRef:72acb54c-837e-f60b-5b73-54258ba6f8ce":{"uuid":"72acb54c-837e-f60b-5b73-54258ba6f8ce","name_label":"vm_guest_metrics.get_pv_drivers_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:72acb54c-837e-f60b-5b73-54258ba6f8ce","$type":"role"},"OpaqueRef:fc02d213-9915-5d79-f9f9-77981d5e7e61":{"uuid":"fc02d213-9915-5d79-f9f9-77981d5e7e61","name_label":"vm_guest_metrics.get_pv_drivers_up_to_date","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fc02d213-9915-5d79-f9f9-77981d5e7e61","$type":"role"},"OpaqueRef:fe33f11b-7386-0023-20a5-5d66b81d1550":{"uuid":"fe33f11b-7386-0023-20a5-5d66b81d1550","name_label":"vm_guest_metrics.get_memory","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fe33f11b-7386-0023-20a5-5d66b81d1550","$type":"role"},"OpaqueRef:ea08f6e0-a317-ec4e-b863-b58cd69e6f55":{"uuid":"ea08f6e0-a317-ec4e-b863-b58cd69e6f55","name_label":"vm_guest_metrics.get_disks","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ea08f6e0-a317-ec4e-b863-b58cd69e6f55","$type":"role"},"OpaqueRef:07ba3c3a-6d81-f137-050b-460a090cd95e":{"uuid":"07ba3c3a-6d81-f137-050b-460a090cd95e","name_label":"vm_guest_metrics.get_networks","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:07ba3c3a-6d81-f137-050b-460a090cd95e","$type":"role"},"OpaqueRef:c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e":{"uuid":"c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e","name_label":"vm_guest_metrics.get_other","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e","$type":"role"},"OpaqueRef:b8e13938-03be-2a5d-fc3b-425b8f7966f9":{"uuid":"b8e13938-03be-2a5d-fc3b-425b8f7966f9","name_label":"vm_guest_metrics.get_last_updated","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b8e13938-03be-2a5d-fc3b-425b8f7966f9","$type":"role"},"OpaqueRef:d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8":{"uuid":"d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8","name_label":"vm_guest_metrics.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8","$type":"role"},"OpaqueRef:6419de42-529d-e793-ac14-e1afc0f4d3d7":{"uuid":"6419de42-529d-e793-ac14-e1afc0f4d3d7","name_label":"vm_guest_metrics.get_live","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6419de42-529d-e793-ac14-e1afc0f4d3d7","$type":"role"},"OpaqueRef:e17a593c-8a4f-f38a-ebca-9bfefa5ca0d7":{"uuid":"e17a593c-8a4f-f38a-ebca-9bfefa5ca0d7","name_label":"vm_guest_metrics.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e17a593c-8a4f-f38a-ebca-9bfefa5ca0d7","$type":"role"},"OpaqueRef:52e71fd0-4e0c-c56d-ecbe-1258494bd886":{"uuid":"52e71fd0-4e0c-c56d-ecbe-1258494bd886","name_label":"vm_guest_metrics.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:52e71fd0-4e0c-c56d-ecbe-1258494bd886","$type":"role"},"OpaqueRef:7980080f-48b6-928b-4b88-114da9c5fd80":{"uuid":"7980080f-48b6-928b-4b88-114da9c5fd80","name_label":"vm_guest_metrics.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7980080f-48b6-928b-4b88-114da9c5fd80","$type":"role"},"OpaqueRef:36ef005e-7879-0edf-e7d9-54b5b5f6e467":{"uuid":"36ef005e-7879-0edf-e7d9-54b5b5f6e467","name_label":"vm_guest_metrics.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:36ef005e-7879-0edf-e7d9-54b5b5f6e467","$type":"role"},"OpaqueRef:ff2c84a9-3ea0-6792-fe4d-3215c397f3b0":{"uuid":"ff2c84a9-3ea0-6792-fe4d-3215c397f3b0","name_label":"vm_guest_metrics.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ff2c84a9-3ea0-6792-fe4d-3215c397f3b0","$type":"role"},"OpaqueRef:18d16a24-b68d-43cf-69d2-7a5868998306":{"uuid":"18d16a24-b68d-43cf-69d2-7a5868998306","name_label":"vm_guest_metrics.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:18d16a24-b68d-43cf-69d2-7a5868998306","$type":"role"},"OpaqueRef:6d180e8a-3fc3-4459-2526-189b389da794":{"uuid":"6d180e8a-3fc3-4459-2526-189b389da794","name_label":"vmpp.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d180e8a-3fc3-4459-2526-189b389da794","$type":"role"},"OpaqueRef:2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4":{"uuid":"2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4","name_label":"vmpp.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4","$type":"role"},"OpaqueRef:9f533cce-7cfe-9091-47ad-d061296f0ab7":{"uuid":"9f533cce-7cfe-9091-47ad-d061296f0ab7","name_label":"vmpp.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9f533cce-7cfe-9091-47ad-d061296f0ab7","$type":"role"},"OpaqueRef:66a5a073-316a-fe3d-aa44-7d9f19e49417":{"uuid":"66a5a073-316a-fe3d-aa44-7d9f19e49417","name_label":"vmpp.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:66a5a073-316a-fe3d-aa44-7d9f19e49417","$type":"role"},"OpaqueRef:4a2b195f-f477-f143-e4db-f96913abdf9a":{"uuid":"4a2b195f-f477-f143-e4db-f96913abdf9a","name_label":"vmpp.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a2b195f-f477-f143-e4db-f96913abdf9a","$type":"role"},"OpaqueRef:4af3e675-5dd0-08c7-b67a-414e85223d40":{"uuid":"4af3e675-5dd0-08c7-b67a-414e85223d40","name_label":"vmpp.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4af3e675-5dd0-08c7-b67a-414e85223d40","$type":"role"},"OpaqueRef:cd17195a-9274-0b74-bc8e-3f0c916bfbce":{"uuid":"cd17195a-9274-0b74-bc8e-3f0c916bfbce","name_label":"vmpp.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cd17195a-9274-0b74-bc8e-3f0c916bfbce","$type":"role"},"OpaqueRef:864a54cb-981c-8bba-19eb-2c76ce406359":{"uuid":"864a54cb-981c-8bba-19eb-2c76ce406359","name_label":"vmpp.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:864a54cb-981c-8bba-19eb-2c76ce406359","$type":"role"},"OpaqueRef:37fed550-72a4-a8c8-5468-8bc3bfd1554e":{"uuid":"37fed550-72a4-a8c8-5468-8bc3bfd1554e","name_label":"vmpp.get_is_policy_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:37fed550-72a4-a8c8-5468-8bc3bfd1554e","$type":"role"},"OpaqueRef:800592e3-30ac-bc00-4274-f9c23e335d57":{"uuid":"800592e3-30ac-bc00-4274-f9c23e335d57","name_label":"vmpp.get_backup_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:800592e3-30ac-bc00-4274-f9c23e335d57","$type":"role"},"OpaqueRef:699638de-d890-04ef-ea8e-5473742ceb88":{"uuid":"699638de-d890-04ef-ea8e-5473742ceb88","name_label":"vmpp.get_backup_retention_value","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:699638de-d890-04ef-ea8e-5473742ceb88","$type":"role"},"OpaqueRef:5dc61f97-020c-3958-1531-9d950ebad058":{"uuid":"5dc61f97-020c-3958-1531-9d950ebad058","name_label":"vmpp.get_backup_frequency","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5dc61f97-020c-3958-1531-9d950ebad058","$type":"role"},"OpaqueRef:0f104484-8054-bb43-0685-27030f6bebca":{"uuid":"0f104484-8054-bb43-0685-27030f6bebca","name_label":"vmpp.get_backup_schedule","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f104484-8054-bb43-0685-27030f6bebca","$type":"role"},"OpaqueRef:7122efb6-3045-2da0-b503-1524b692a5d8":{"uuid":"7122efb6-3045-2da0-b503-1524b692a5d8","name_label":"vmpp.get_is_backup_running","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7122efb6-3045-2da0-b503-1524b692a5d8","$type":"role"},"OpaqueRef:79a22291-0fca-eeef-d23a-1b796b2123aa":{"uuid":"79a22291-0fca-eeef-d23a-1b796b2123aa","name_label":"vmpp.get_backup_last_run_time","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:79a22291-0fca-eeef-d23a-1b796b2123aa","$type":"role"},"OpaqueRef:fc844b8c-44f7-0a47-136b-9fdae98759df":{"uuid":"fc844b8c-44f7-0a47-136b-9fdae98759df","name_label":"vmpp.get_archive_target_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fc844b8c-44f7-0a47-136b-9fdae98759df","$type":"role"},"OpaqueRef:539ace0a-c714-562d-f153-ce5df5f92265":{"uuid":"539ace0a-c714-562d-f153-ce5df5f92265","name_label":"vmpp.get_archive_target_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:539ace0a-c714-562d-f153-ce5df5f92265","$type":"role"},"OpaqueRef:a714bc2b-93c4-7785-d84c-53e40aaabc73":{"uuid":"a714bc2b-93c4-7785-d84c-53e40aaabc73","name_label":"vmpp.get_archive_frequency","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a714bc2b-93c4-7785-d84c-53e40aaabc73","$type":"role"},"OpaqueRef:caed3120-c6e2-8d1f-4498-6aa7d966a575":{"uuid":"caed3120-c6e2-8d1f-4498-6aa7d966a575","name_label":"vmpp.get_archive_schedule","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:caed3120-c6e2-8d1f-4498-6aa7d966a575","$type":"role"},"OpaqueRef:aae2577c-a1a7-9646-9bc5-a9c082108eab":{"uuid":"aae2577c-a1a7-9646-9bc5-a9c082108eab","name_label":"vmpp.get_is_archive_running","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aae2577c-a1a7-9646-9bc5-a9c082108eab","$type":"role"},"OpaqueRef:4bfb1275-7c46-d751-4ab4-f19c5e83bd41":{"uuid":"4bfb1275-7c46-d751-4ab4-f19c5e83bd41","name_label":"vmpp.get_archive_last_run_time","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4bfb1275-7c46-d751-4ab4-f19c5e83bd41","$type":"role"},"OpaqueRef:1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f":{"uuid":"1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f","name_label":"vmpp.get_vms","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f","$type":"role"},"OpaqueRef:96fbe84c-1cce-dab3-c396-bb28962a8aab":{"uuid":"96fbe84c-1cce-dab3-c396-bb28962a8aab","name_label":"vmpp.get_is_alarm_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:96fbe84c-1cce-dab3-c396-bb28962a8aab","$type":"role"},"OpaqueRef:0b3c3543-7504-c5eb-4673-31e51971670a":{"uuid":"0b3c3543-7504-c5eb-4673-31e51971670a","name_label":"vmpp.get_alarm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0b3c3543-7504-c5eb-4673-31e51971670a","$type":"role"},"OpaqueRef:94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e":{"uuid":"94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e","name_label":"vmpp.get_recent_alerts","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e","$type":"role"},"OpaqueRef:edd1d574-8e08-4b9f-b11f-0e7d4b8cd21c":{"uuid":"edd1d574-8e08-4b9f-b11f-0e7d4b8cd21c","name_label":"vmpp.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:edd1d574-8e08-4b9f-b11f-0e7d4b8cd21c","$type":"role"},"OpaqueRef:d6eb160a-fa45-e966-907c-777b372ea662":{"uuid":"d6eb160a-fa45-e966-907c-777b372ea662","name_label":"vmpp.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6eb160a-fa45-e966-907c-777b372ea662","$type":"role"},"OpaqueRef:42534039-8f37-bce6-9039-93d2102f99cc":{"uuid":"42534039-8f37-bce6-9039-93d2102f99cc","name_label":"vmpp.set_is_policy_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:42534039-8f37-bce6-9039-93d2102f99cc","$type":"role"},"OpaqueRef:43e4cda9-b000-a516-5bca-fd645320cd94":{"uuid":"43e4cda9-b000-a516-5bca-fd645320cd94","name_label":"vmpp.set_backup_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:43e4cda9-b000-a516-5bca-fd645320cd94","$type":"role"},"OpaqueRef:f21699c6-5b6b-cdb6-1975-bc9a4db2bf4b":{"uuid":"f21699c6-5b6b-cdb6-1975-bc9a4db2bf4b","name_label":"vmpp.protect_now","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f21699c6-5b6b-cdb6-1975-bc9a4db2bf4b","$type":"role"},"OpaqueRef:99fb86a7-2a9c-1f78-7c1d-5dd8507e9be4":{"uuid":"99fb86a7-2a9c-1f78-7c1d-5dd8507e9be4","name_label":"vmpp.archive_now","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:99fb86a7-2a9c-1f78-7c1d-5dd8507e9be4","$type":"role"},"OpaqueRef:b6cf7d25-180e-be25-9159-e0e307f4aeea":{"uuid":"b6cf7d25-180e-be25-9159-e0e307f4aeea","name_label":"vmpp.get_alerts","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b6cf7d25-180e-be25-9159-e0e307f4aeea","$type":"role"},"OpaqueRef:312e70a7-5688-3a9d-a2cf-4205e3f90291":{"uuid":"312e70a7-5688-3a9d-a2cf-4205e3f90291","name_label":"vmpp.set_backup_retention_value","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:312e70a7-5688-3a9d-a2cf-4205e3f90291","$type":"role"},"OpaqueRef:85dc0856-788d-cf0e-f03a-f48410eb8f09":{"uuid":"85dc0856-788d-cf0e-f03a-f48410eb8f09","name_label":"vmpp.set_backup_frequency","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:85dc0856-788d-cf0e-f03a-f48410eb8f09","$type":"role"},"OpaqueRef:1b3e1eec-b9f2-7116-639d-20bdbd0e1391":{"uuid":"1b3e1eec-b9f2-7116-639d-20bdbd0e1391","name_label":"vmpp.set_backup_schedule","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1b3e1eec-b9f2-7116-639d-20bdbd0e1391","$type":"role"},"OpaqueRef:af7b137a-4073-820d-6d70-d8a2af8fadcd":{"uuid":"af7b137a-4073-820d-6d70-d8a2af8fadcd","name_label":"vmpp.set_archive_frequency","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:af7b137a-4073-820d-6d70-d8a2af8fadcd","$type":"role"},"OpaqueRef:db06e822-3b47-bdb9-f423-547920353742":{"uuid":"db06e822-3b47-bdb9-f423-547920353742","name_label":"vmpp.set_archive_schedule","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:db06e822-3b47-bdb9-f423-547920353742","$type":"role"},"OpaqueRef:8f9cbce3-0281-58b3-3b14-aa2771ab5f7e":{"uuid":"8f9cbce3-0281-58b3-3b14-aa2771ab5f7e","name_label":"vmpp.set_archive_target_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8f9cbce3-0281-58b3-3b14-aa2771ab5f7e","$type":"role"},"OpaqueRef:659f50a3-c9d9-42dc-2fe2-4466b1f79ce2":{"uuid":"659f50a3-c9d9-42dc-2fe2-4466b1f79ce2","name_label":"vmpp.set_archive_target_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:659f50a3-c9d9-42dc-2fe2-4466b1f79ce2","$type":"role"},"OpaqueRef:6da94f95-a02e-f573-12bf-dcfde7e43499":{"uuid":"6da94f95-a02e-f573-12bf-dcfde7e43499","name_label":"vmpp.set_is_alarm_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6da94f95-a02e-f573-12bf-dcfde7e43499","$type":"role"},"OpaqueRef:41c3ad8a-a3ed-1b47-c9bd-8a94704ddc19":{"uuid":"41c3ad8a-a3ed-1b47-c9bd-8a94704ddc19","name_label":"vmpp.set_alarm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:41c3ad8a-a3ed-1b47-c9bd-8a94704ddc19","$type":"role"},"OpaqueRef:5ed9712b-4b5f-6ec7-8403-cc4d9df52722":{"uuid":"5ed9712b-4b5f-6ec7-8403-cc4d9df52722","name_label":"vmpp.add_to_backup_schedule","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5ed9712b-4b5f-6ec7-8403-cc4d9df52722","$type":"role"},"OpaqueRef:8f4e82a4-f8be-c01e-10a6-d0a74f28733c":{"uuid":"8f4e82a4-f8be-c01e-10a6-d0a74f28733c","name_label":"vmpp.add_to_archive_target_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8f4e82a4-f8be-c01e-10a6-d0a74f28733c","$type":"role"},"OpaqueRef:d5d12c34-1ff7-0549-e6b1-b333ad750dc6":{"uuid":"d5d12c34-1ff7-0549-e6b1-b333ad750dc6","name_label":"vmpp.add_to_archive_schedule","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d5d12c34-1ff7-0549-e6b1-b333ad750dc6","$type":"role"},"OpaqueRef:956adae3-0a93-7d20-5461-a3ad098af157":{"uuid":"956adae3-0a93-7d20-5461-a3ad098af157","name_label":"vmpp.add_to_alarm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:956adae3-0a93-7d20-5461-a3ad098af157","$type":"role"},"OpaqueRef:ba585c04-ee5f-5a5e-794b-ef25c06fa1fd":{"uuid":"ba585c04-ee5f-5a5e-794b-ef25c06fa1fd","name_label":"vmpp.remove_from_backup_schedule","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ba585c04-ee5f-5a5e-794b-ef25c06fa1fd","$type":"role"},"OpaqueRef:b09c0eac-e6f7-a1e5-0fe4-3adf9d6d38bc":{"uuid":"b09c0eac-e6f7-a1e5-0fe4-3adf9d6d38bc","name_label":"vmpp.remove_from_archive_target_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b09c0eac-e6f7-a1e5-0fe4-3adf9d6d38bc","$type":"role"},"OpaqueRef:1482f01e-2355-577f-f230-2e51fddf34d4":{"uuid":"1482f01e-2355-577f-f230-2e51fddf34d4","name_label":"vmpp.remove_from_archive_schedule","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1482f01e-2355-577f-f230-2e51fddf34d4","$type":"role"},"OpaqueRef:cce6834a-f698-3755-c4b2-17d866f608d4":{"uuid":"cce6834a-f698-3755-c4b2-17d866f608d4","name_label":"vmpp.remove_from_alarm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cce6834a-f698-3755-c4b2-17d866f608d4","$type":"role"},"OpaqueRef:8dfb37f5-203f-2ea4-597f-7c350f6233f1":{"uuid":"8dfb37f5-203f-2ea4-597f-7c350f6233f1","name_label":"vmpp.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8dfb37f5-203f-2ea4-597f-7c350f6233f1","$type":"role"},"OpaqueRef:3f9bb6d6-db4e-b115-a2c3-adf553886983":{"uuid":"3f9bb6d6-db4e-b115-a2c3-adf553886983","name_label":"vmpp.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3f9bb6d6-db4e-b115-a2c3-adf553886983","$type":"role"},"OpaqueRef:2770c2e9-7d35-17f7-5f34-9814d604a3c7":{"uuid":"2770c2e9-7d35-17f7-5f34-9814d604a3c7","name_label":"vmpp.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2770c2e9-7d35-17f7-5f34-9814d604a3c7","$type":"role"},"OpaqueRef:9760f691-5295-ecc8-bf2c-3865249c1f6b":{"uuid":"9760f691-5295-ecc8-bf2c-3865249c1f6b","name_label":"vm_appliance.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9760f691-5295-ecc8-bf2c-3865249c1f6b","$type":"role"},"OpaqueRef:a2a09fcd-1313-554c-9051-f4dd1c4474fe":{"uuid":"a2a09fcd-1313-554c-9051-f4dd1c4474fe","name_label":"vm_appliance.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a2a09fcd-1313-554c-9051-f4dd1c4474fe","$type":"role"},"OpaqueRef:82b892b0-b416-c7a1-298d-6030038b4d1a":{"uuid":"82b892b0-b416-c7a1-298d-6030038b4d1a","name_label":"vm_appliance.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:82b892b0-b416-c7a1-298d-6030038b4d1a","$type":"role"},"OpaqueRef:955fa7ad-d7c2-4ade-aa2b-0bc95fb4364b":{"uuid":"955fa7ad-d7c2-4ade-aa2b-0bc95fb4364b","name_label":"vm_appliance.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:955fa7ad-d7c2-4ade-aa2b-0bc95fb4364b","$type":"role"},"OpaqueRef:4a16dd04-0fbb-e5bc-af88-01046c72c54b":{"uuid":"4a16dd04-0fbb-e5bc-af88-01046c72c54b","name_label":"vm_appliance.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a16dd04-0fbb-e5bc-af88-01046c72c54b","$type":"role"},"OpaqueRef:9350ea5c-ca28-1ece-9c6f-1c4ab918d119":{"uuid":"9350ea5c-ca28-1ece-9c6f-1c4ab918d119","name_label":"vm_appliance.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9350ea5c-ca28-1ece-9c6f-1c4ab918d119","$type":"role"},"OpaqueRef:d529b00f-b546-b67d-c50e-f0d216b2ef56":{"uuid":"d529b00f-b546-b67d-c50e-f0d216b2ef56","name_label":"vm_appliance.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d529b00f-b546-b67d-c50e-f0d216b2ef56","$type":"role"},"OpaqueRef:1ea042ad-d922-f7cb-90ab-9ac09e011670":{"uuid":"1ea042ad-d922-f7cb-90ab-9ac09e011670","name_label":"vm_appliance.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1ea042ad-d922-f7cb-90ab-9ac09e011670","$type":"role"},"OpaqueRef:0d87eda4-f5b4-1c19-ff98-f1bc171afb8f":{"uuid":"0d87eda4-f5b4-1c19-ff98-f1bc171afb8f","name_label":"vm_appliance.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0d87eda4-f5b4-1c19-ff98-f1bc171afb8f","$type":"role"},"OpaqueRef:6d3feec4-ad36-040d-b555-8c49b8015bf2":{"uuid":"6d3feec4-ad36-040d-b555-8c49b8015bf2","name_label":"vm_appliance.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d3feec4-ad36-040d-b555-8c49b8015bf2","$type":"role"},"OpaqueRef:4c964b58-b18d-599c-140c-3d7e6fee0949":{"uuid":"4c964b58-b18d-599c-140c-3d7e6fee0949","name_label":"vm_appliance.get_vms","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4c964b58-b18d-599c-140c-3d7e6fee0949","$type":"role"},"OpaqueRef:f9abf01e-9fd9-657d-9ad8-9d63a39e7c1f":{"uuid":"f9abf01e-9fd9-657d-9ad8-9d63a39e7c1f","name_label":"vm_appliance.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f9abf01e-9fd9-657d-9ad8-9d63a39e7c1f","$type":"role"},"OpaqueRef:86b1fd97-2498-0209-d341-78b596de9885":{"uuid":"86b1fd97-2498-0209-d341-78b596de9885","name_label":"vm_appliance.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:86b1fd97-2498-0209-d341-78b596de9885","$type":"role"},"OpaqueRef:3f6f6ef7-c08c-f1a3-a05f-33956e2f3e2e":{"uuid":"3f6f6ef7-c08c-f1a3-a05f-33956e2f3e2e","name_label":"vm_appliance.start","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3f6f6ef7-c08c-f1a3-a05f-33956e2f3e2e","$type":"role"},"OpaqueRef:1f776a73-446d-1f0d-eeed-44ad6464f02c":{"uuid":"1f776a73-446d-1f0d-eeed-44ad6464f02c","name_label":"vm_appliance.clean_shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1f776a73-446d-1f0d-eeed-44ad6464f02c","$type":"role"},"OpaqueRef:52df136f-591e-cd8c-8588-3a34b9be4117":{"uuid":"52df136f-591e-cd8c-8588-3a34b9be4117","name_label":"vm_appliance.hard_shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:52df136f-591e-cd8c-8588-3a34b9be4117","$type":"role"},"OpaqueRef:ab69daa2-fbe0-d709-901a-80bb8fa49f15":{"uuid":"ab69daa2-fbe0-d709-901a-80bb8fa49f15","name_label":"vm_appliance.shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab69daa2-fbe0-d709-901a-80bb8fa49f15","$type":"role"},"OpaqueRef:fa09b51e-0da5-a900-4da2-33752ad8a112":{"uuid":"fa09b51e-0da5-a900-4da2-33752ad8a112","name_label":"vm_appliance.assert_can_be_recovered","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fa09b51e-0da5-a900-4da2-33752ad8a112","$type":"role"},"OpaqueRef:bebace76-69a8-cb40-82aa-5ecd4b882075":{"uuid":"bebace76-69a8-cb40-82aa-5ecd4b882075","name_label":"vm_appliance.recover","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bebace76-69a8-cb40-82aa-5ecd4b882075","$type":"role"},"OpaqueRef:f05760c3-46d9-9cf5-8831-330943a33ce2":{"uuid":"f05760c3-46d9-9cf5-8831-330943a33ce2","name_label":"vm_appliance.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f05760c3-46d9-9cf5-8831-330943a33ce2","$type":"role"},"OpaqueRef:9a9b62f1-2fae-cc0c-03ff-147b35e7917e":{"uuid":"9a9b62f1-2fae-cc0c-03ff-147b35e7917e","name_label":"vm_appliance.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9a9b62f1-2fae-cc0c-03ff-147b35e7917e","$type":"role"},"OpaqueRef:e39b5c55-fcf4-41de-74c9-a38e278e85db":{"uuid":"e39b5c55-fcf4-41de-74c9-a38e278e85db","name_label":"vm_appliance.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e39b5c55-fcf4-41de-74c9-a38e278e85db","$type":"role"},"OpaqueRef:ca111bd4-768b-a624-f752-4d4a51ab2471":{"uuid":"ca111bd4-768b-a624-f752-4d4a51ab2471","name_label":"dr_task.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ca111bd4-768b-a624-f752-4d4a51ab2471","$type":"role"},"OpaqueRef:66ce4f5c-82d0-457d-dced-433bb8b5229e":{"uuid":"66ce4f5c-82d0-457d-dced-433bb8b5229e","name_label":"dr_task.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:66ce4f5c-82d0-457d-dced-433bb8b5229e","$type":"role"},"OpaqueRef:16474184-4484-6193-a7f4-2baa521a56e7":{"uuid":"16474184-4484-6193-a7f4-2baa521a56e7","name_label":"dr_task.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:16474184-4484-6193-a7f4-2baa521a56e7","$type":"role"},"OpaqueRef:cf7a0ae8-7440-c6ac-ef72-5454aadc19a7":{"uuid":"cf7a0ae8-7440-c6ac-ef72-5454aadc19a7","name_label":"dr_task.get_introduced_srs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf7a0ae8-7440-c6ac-ef72-5454aadc19a7","$type":"role"},"OpaqueRef:6226ec36-c110-cf46-6923-b8917c576b09":{"uuid":"6226ec36-c110-cf46-6923-b8917c576b09","name_label":"dr_task.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6226ec36-c110-cf46-6923-b8917c576b09","$type":"role"},"OpaqueRef:209713e3-3188-5f83-125a-4d313e4aac7b":{"uuid":"209713e3-3188-5f83-125a-4d313e4aac7b","name_label":"dr_task.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:209713e3-3188-5f83-125a-4d313e4aac7b","$type":"role"},"OpaqueRef:dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4":{"uuid":"dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4","name_label":"dr_task.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4","$type":"role"},"OpaqueRef:1c6ae07b-8cc7-3334-d143-40fba15e5d1b":{"uuid":"1c6ae07b-8cc7-3334-d143-40fba15e5d1b","name_label":"dr_task.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1c6ae07b-8cc7-3334-d143-40fba15e5d1b","$type":"role"},"OpaqueRef:26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1":{"uuid":"26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1","name_label":"dr_task.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1","$type":"role"},"OpaqueRef:38d676a9-1eca-992f-8768-65856d28ec39":{"uuid":"38d676a9-1eca-992f-8768-65856d28ec39","name_label":"host.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:38d676a9-1eca-992f-8768-65856d28ec39","$type":"role"},"OpaqueRef:76efe753-ae98-21ef-4ee0-c06be1ed6bf8":{"uuid":"76efe753-ae98-21ef-4ee0-c06be1ed6bf8","name_label":"host.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:76efe753-ae98-21ef-4ee0-c06be1ed6bf8","$type":"role"},"OpaqueRef:7ace0159-c007-b95d-d43e-90af54f7b4f3":{"uuid":"7ace0159-c007-b95d-d43e-90af54f7b4f3","name_label":"host.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7ace0159-c007-b95d-d43e-90af54f7b4f3","$type":"role"},"OpaqueRef:0511b768-32ca-e60a-83d1-6089ee037abd":{"uuid":"0511b768-32ca-e60a-83d1-6089ee037abd","name_label":"host.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0511b768-32ca-e60a-83d1-6089ee037abd","$type":"role"},"OpaqueRef:8b731fe2-d6fa-2b5a-738b-aa1501e2a00c":{"uuid":"8b731fe2-d6fa-2b5a-738b-aa1501e2a00c","name_label":"host.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8b731fe2-d6fa-2b5a-738b-aa1501e2a00c","$type":"role"},"OpaqueRef:c2e03e88-ade6-a5ff-db5b-b92e0bc2e580":{"uuid":"c2e03e88-ade6-a5ff-db5b-b92e0bc2e580","name_label":"host.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c2e03e88-ade6-a5ff-db5b-b92e0bc2e580","$type":"role"},"OpaqueRef:627b53af-258b-eaec-feec-9a1cfb5e915d":{"uuid":"627b53af-258b-eaec-feec-9a1cfb5e915d","name_label":"host.get_memory_overhead","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:627b53af-258b-eaec-feec-9a1cfb5e915d","$type":"role"},"OpaqueRef:d6b2a0b1-1991-b740-0d48-242d5b3463b2":{"uuid":"d6b2a0b1-1991-b740-0d48-242d5b3463b2","name_label":"host.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6b2a0b1-1991-b740-0d48-242d5b3463b2","$type":"role"},"OpaqueRef:5502ee79-ceec-099c-740a-42e395dac81b":{"uuid":"5502ee79-ceec-099c-740a-42e395dac81b","name_label":"host.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5502ee79-ceec-099c-740a-42e395dac81b","$type":"role"},"OpaqueRef:b498514f-0f98-ec60-df87-f1feed07141b":{"uuid":"b498514f-0f98-ec60-df87-f1feed07141b","name_label":"host.get_api_version_major","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b498514f-0f98-ec60-df87-f1feed07141b","$type":"role"},"OpaqueRef:6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e":{"uuid":"6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e","name_label":"host.get_api_version_minor","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e","$type":"role"},"OpaqueRef:0cd88229-8eb6-dd98-09cc-8635498afcd2":{"uuid":"0cd88229-8eb6-dd98-09cc-8635498afcd2","name_label":"host.get_api_version_vendor","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0cd88229-8eb6-dd98-09cc-8635498afcd2","$type":"role"},"OpaqueRef:58ac1559-04a8-f7ad-2224-53591cacfcb7":{"uuid":"58ac1559-04a8-f7ad-2224-53591cacfcb7","name_label":"host.get_api_version_vendor_implementation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:58ac1559-04a8-f7ad-2224-53591cacfcb7","$type":"role"},"OpaqueRef:d7450039-1e27-7ac8-acc5-a698cb19a525":{"uuid":"d7450039-1e27-7ac8-acc5-a698cb19a525","name_label":"host.get_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d7450039-1e27-7ac8-acc5-a698cb19a525","$type":"role"},"OpaqueRef:ae095db7-583e-cfc0-2cd3-db791d3b1671":{"uuid":"ae095db7-583e-cfc0-2cd3-db791d3b1671","name_label":"host.get_software_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ae095db7-583e-cfc0-2cd3-db791d3b1671","$type":"role"},"OpaqueRef:8ddf8bd4-4146-aab7-5e60-37b3c59f060d":{"uuid":"8ddf8bd4-4146-aab7-5e60-37b3c59f060d","name_label":"host.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8ddf8bd4-4146-aab7-5e60-37b3c59f060d","$type":"role"},"OpaqueRef:00f9116e-139e-c5c6-e647-308230cc9f5a":{"uuid":"00f9116e-139e-c5c6-e647-308230cc9f5a","name_label":"host.get_capabilities","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:00f9116e-139e-c5c6-e647-308230cc9f5a","$type":"role"},"OpaqueRef:70787b4c-26d0-f9c5-9b31-1c9e291035c4":{"uuid":"70787b4c-26d0-f9c5-9b31-1c9e291035c4","name_label":"host.get_cpu_configuration","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:70787b4c-26d0-f9c5-9b31-1c9e291035c4","$type":"role"},"OpaqueRef:14ea86d7-eccf-8790-fe68-2cee27f915c0":{"uuid":"14ea86d7-eccf-8790-fe68-2cee27f915c0","name_label":"host.get_sched_policy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:14ea86d7-eccf-8790-fe68-2cee27f915c0","$type":"role"},"OpaqueRef:7f355dde-ac8c-9a02-ce96-16a1a08c0836":{"uuid":"7f355dde-ac8c-9a02-ce96-16a1a08c0836","name_label":"host.get_supported_bootloaders","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7f355dde-ac8c-9a02-ce96-16a1a08c0836","$type":"role"},"OpaqueRef:1c6bfef7-d9c9-4b53-4184-c72d5896e910":{"uuid":"1c6bfef7-d9c9-4b53-4184-c72d5896e910","name_label":"host.get_resident_vms","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1c6bfef7-d9c9-4b53-4184-c72d5896e910","$type":"role"},"OpaqueRef:8ae37793-9d90-d55d-bd48-328657eac262":{"uuid":"8ae37793-9d90-d55d-bd48-328657eac262","name_label":"host.get_logging","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8ae37793-9d90-d55d-bd48-328657eac262","$type":"role"},"OpaqueRef:4748a78b-fbc6-06d6-9a9b-0fee76a37e42":{"uuid":"4748a78b-fbc6-06d6-9a9b-0fee76a37e42","name_label":"host.get_pifs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4748a78b-fbc6-06d6-9a9b-0fee76a37e42","$type":"role"},"OpaqueRef:922f39f2-c948-d0cb-813a-8fb675fe1209":{"uuid":"922f39f2-c948-d0cb-813a-8fb675fe1209","name_label":"host.get_suspend_image_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:922f39f2-c948-d0cb-813a-8fb675fe1209","$type":"role"},"OpaqueRef:5e5aa3af-ee5b-3973-2b26-cf1882900d7c":{"uuid":"5e5aa3af-ee5b-3973-2b26-cf1882900d7c","name_label":"host.get_crash_dump_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5e5aa3af-ee5b-3973-2b26-cf1882900d7c","$type":"role"},"OpaqueRef:ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b":{"uuid":"ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b","name_label":"host.get_crashdumps","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b","$type":"role"},"OpaqueRef:ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3":{"uuid":"ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3","name_label":"host.get_patches","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3","$type":"role"},"OpaqueRef:d13394ed-05a5-8a53-ba59-20525ec873be":{"uuid":"d13394ed-05a5-8a53-ba59-20525ec873be","name_label":"host.get_pbds","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d13394ed-05a5-8a53-ba59-20525ec873be","$type":"role"},"OpaqueRef:c71d068d-24c4-6d68-8439-3078c968141e":{"uuid":"c71d068d-24c4-6d68-8439-3078c968141e","name_label":"host.get_host_cpus","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c71d068d-24c4-6d68-8439-3078c968141e","$type":"role"},"OpaqueRef:bceff7d6-7267-91cf-fef1-eaa65de886e2":{"uuid":"bceff7d6-7267-91cf-fef1-eaa65de886e2","name_label":"host.get_cpu_info","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bceff7d6-7267-91cf-fef1-eaa65de886e2","$type":"role"},"OpaqueRef:b9a4873c-7e19-ebec-d524-f1d69da5324b":{"uuid":"b9a4873c-7e19-ebec-d524-f1d69da5324b","name_label":"host.get_hostname","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b9a4873c-7e19-ebec-d524-f1d69da5324b","$type":"role"},"OpaqueRef:a433bf84-7725-f4e2-6f89-31054403dd87":{"uuid":"a433bf84-7725-f4e2-6f89-31054403dd87","name_label":"host.get_address","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a433bf84-7725-f4e2-6f89-31054403dd87","$type":"role"},"OpaqueRef:e254be14-8fe4-916c-b287-25b8be1a6502":{"uuid":"e254be14-8fe4-916c-b287-25b8be1a6502","name_label":"host.get_metrics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e254be14-8fe4-916c-b287-25b8be1a6502","$type":"role"},"OpaqueRef:fae19164-aa28-38ee-e1e5-a3a3082729bf":{"uuid":"fae19164-aa28-38ee-e1e5-a3a3082729bf","name_label":"host.get_license_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fae19164-aa28-38ee-e1e5-a3a3082729bf","$type":"role"},"OpaqueRef:86907190-69ac-4a19-df3b-6678644e64e8":{"uuid":"86907190-69ac-4a19-df3b-6678644e64e8","name_label":"host.get_ha_statefiles","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:86907190-69ac-4a19-df3b-6678644e64e8","$type":"role"},"OpaqueRef:1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f":{"uuid":"1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f","name_label":"host.get_ha_network_peers","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f","$type":"role"},"OpaqueRef:b132a88b-b242-3cf8-0459-4bd858b7dc93":{"uuid":"b132a88b-b242-3cf8-0459-4bd858b7dc93","name_label":"host.get_blobs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b132a88b-b242-3cf8-0459-4bd858b7dc93","$type":"role"},"OpaqueRef:505fcb18-5888-5bf2-75be-6235aba2e6ee":{"uuid":"505fcb18-5888-5bf2-75be-6235aba2e6ee","name_label":"host.get_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:505fcb18-5888-5bf2-75be-6235aba2e6ee","$type":"role"},"OpaqueRef:d5b5a870-45ee-4124-ec9d-3f16ed2c7db7":{"uuid":"d5b5a870-45ee-4124-ec9d-3f16ed2c7db7","name_label":"host.get_external_auth_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d5b5a870-45ee-4124-ec9d-3f16ed2c7db7","$type":"role"},"OpaqueRef:ac809817-a5db-b4a2-0b14-3ba7c0ff2165":{"uuid":"ac809817-a5db-b4a2-0b14-3ba7c0ff2165","name_label":"host.get_external_auth_service_name","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ac809817-a5db-b4a2-0b14-3ba7c0ff2165","$type":"role"},"OpaqueRef:7958cefd-9fdc-f836-fedc-22f89fd06ce2":{"uuid":"7958cefd-9fdc-f836-fedc-22f89fd06ce2","name_label":"host.get_external_auth_configuration","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7958cefd-9fdc-f836-fedc-22f89fd06ce2","$type":"role"},"OpaqueRef:176db48f-09fe-625d-8d3f-0588f796751a":{"uuid":"176db48f-09fe-625d-8d3f-0588f796751a","name_label":"host.get_edition","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:176db48f-09fe-625d-8d3f-0588f796751a","$type":"role"},"OpaqueRef:dff728c2-2d9f-e6ff-57ef-a0e31f0927b6":{"uuid":"dff728c2-2d9f-e6ff-57ef-a0e31f0927b6","name_label":"host.get_license_server","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dff728c2-2d9f-e6ff-57ef-a0e31f0927b6","$type":"role"},"OpaqueRef:7c4df9d1-26c8-8986-35f7-a1ec7f4804d2":{"uuid":"7c4df9d1-26c8-8986-35f7-a1ec7f4804d2","name_label":"host.get_bios_strings","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7c4df9d1-26c8-8986-35f7-a1ec7f4804d2","$type":"role"},"OpaqueRef:0a561bf4-9228-cb18-0ce3-7d2a0d302800":{"uuid":"0a561bf4-9228-cb18-0ce3-7d2a0d302800","name_label":"host.get_power_on_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0a561bf4-9228-cb18-0ce3-7d2a0d302800","$type":"role"},"OpaqueRef:21d14229-6be0-a401-6580-4ff98d459f7c":{"uuid":"21d14229-6be0-a401-6580-4ff98d459f7c","name_label":"host.get_power_on_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:21d14229-6be0-a401-6580-4ff98d459f7c","$type":"role"},"OpaqueRef:f850300a-1604-59c2-5cab-0a1380798fbd":{"uuid":"f850300a-1604-59c2-5cab-0a1380798fbd","name_label":"host.get_local_cache_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f850300a-1604-59c2-5cab-0a1380798fbd","$type":"role"},"OpaqueRef:3c6c94b2-f160-ff62-be39-e917e080f3d2":{"uuid":"3c6c94b2-f160-ff62-be39-e917e080f3d2","name_label":"host.get_chipset_info","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3c6c94b2-f160-ff62-be39-e917e080f3d2","$type":"role"},"OpaqueRef:26e20184-1c7f-5596-b456-22ff28f2562a":{"uuid":"26e20184-1c7f-5596-b456-22ff28f2562a","name_label":"host.get_pcis","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:26e20184-1c7f-5596-b456-22ff28f2562a","$type":"role"},"OpaqueRef:5f5d40d5-5171-dacc-b6ff-497744f2d6cf":{"uuid":"5f5d40d5-5171-dacc-b6ff-497744f2d6cf","name_label":"host.get_pgpus","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5f5d40d5-5171-dacc-b6ff-497744f2d6cf","$type":"role"},"OpaqueRef:92d0e454-d08f-fe30-f288-33ac5e9a7193":{"uuid":"92d0e454-d08f-fe30-f288-33ac5e9a7193","name_label":"host.get_guest_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:92d0e454-d08f-fe30-f288-33ac5e9a7193","$type":"role"},"OpaqueRef:98bb0b7e-5f22-9296-3405-4212a5746d83":{"uuid":"98bb0b7e-5f22-9296-3405-4212a5746d83","name_label":"host.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:98bb0b7e-5f22-9296-3405-4212a5746d83","$type":"role"},"OpaqueRef:2d33e554-7bd7-bbdb-8047-76d3195e9258":{"uuid":"2d33e554-7bd7-bbdb-8047-76d3195e9258","name_label":"host.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2d33e554-7bd7-bbdb-8047-76d3195e9258","$type":"role"},"OpaqueRef:99f98089-5ec7-3e6b-c6cf-fe6ee4ca8bdb":{"uuid":"99f98089-5ec7-3e6b-c6cf-fe6ee4ca8bdb","name_label":"host.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:99f98089-5ec7-3e6b-c6cf-fe6ee4ca8bdb","$type":"role"},"OpaqueRef:131b3d34-1ecc-b92a-d1ff-7a45083bd6bf":{"uuid":"131b3d34-1ecc-b92a-d1ff-7a45083bd6bf","name_label":"host.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:131b3d34-1ecc-b92a-d1ff-7a45083bd6bf","$type":"role"},"OpaqueRef:724d860d-c6b0-aecd-97e5-a28c944cf21c":{"uuid":"724d860d-c6b0-aecd-97e5-a28c944cf21c","name_label":"host.add_to_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:724d860d-c6b0-aecd-97e5-a28c944cf21c","$type":"role"},"OpaqueRef:5dc23f7d-7008-5d99-0cd6-780fff26f7ad":{"uuid":"5dc23f7d-7008-5d99-0cd6-780fff26f7ad","name_label":"host.add_to_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5dc23f7d-7008-5d99-0cd6-780fff26f7ad","$type":"role"},"OpaqueRef:332b3889-7848-14d0-1482-baff5d0636c8":{"uuid":"332b3889-7848-14d0-1482-baff5d0636c8","name_label":"host.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:332b3889-7848-14d0-1482-baff5d0636c8","$type":"role"},"OpaqueRef:69cd7eb3-9c03-a6ec-1942-77ccfef89687":{"uuid":"69cd7eb3-9c03-a6ec-1942-77ccfef89687","name_label":"host.remove_from_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:69cd7eb3-9c03-a6ec-1942-77ccfef89687","$type":"role"},"OpaqueRef:49f55d27-bdb9-ea99-50c4-bab151c7ed0a":{"uuid":"49f55d27-bdb9-ea99-50c4-bab151c7ed0a","name_label":"host.remove_from_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:49f55d27-bdb9-ea99-50c4-bab151c7ed0a","$type":"role"},"OpaqueRef:97f064fb-c947-b723-0102-5721b04079df":{"uuid":"97f064fb-c947-b723-0102-5721b04079df","name_label":"host.set_logging","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:97f064fb-c947-b723-0102-5721b04079df","$type":"role"},"OpaqueRef:9eb90ac8-0202-8169-1668-8dc063319fe8":{"uuid":"9eb90ac8-0202-8169-1668-8dc063319fe8","name_label":"host.add_to_logging","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9eb90ac8-0202-8169-1668-8dc063319fe8","$type":"role"},"OpaqueRef:f781ba26-396f-e041-ad4a-88d04bace1d5":{"uuid":"f781ba26-396f-e041-ad4a-88d04bace1d5","name_label":"host.remove_from_logging","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f781ba26-396f-e041-ad4a-88d04bace1d5","$type":"role"},"OpaqueRef:c4d88e0f-5705-b814-ebcc-483efb7cab9f":{"uuid":"c4d88e0f-5705-b814-ebcc-483efb7cab9f","name_label":"host.set_suspend_image_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c4d88e0f-5705-b814-ebcc-483efb7cab9f","$type":"role"},"OpaqueRef:bcc0fef8-e248-bdf2-78f9-8611572bfa25":{"uuid":"bcc0fef8-e248-bdf2-78f9-8611572bfa25","name_label":"host.set_crash_dump_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bcc0fef8-e248-bdf2-78f9-8611572bfa25","$type":"role"},"OpaqueRef:be4226e5-cc5d-56b2-44c3-f4d1f016b63c":{"uuid":"be4226e5-cc5d-56b2-44c3-f4d1f016b63c","name_label":"host.set_hostname","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:be4226e5-cc5d-56b2-44c3-f4d1f016b63c","$type":"role"},"OpaqueRef:52f4e45a-6737-6ba2-78f9-f76dd1b39419":{"uuid":"52f4e45a-6737-6ba2-78f9-f76dd1b39419","name_label":"host.set_address","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:52f4e45a-6737-6ba2-78f9-f76dd1b39419","$type":"role"},"OpaqueRef:d687b364-5ce1-9ab4-0594-1568e7962192":{"uuid":"d687b364-5ce1-9ab4-0594-1568e7962192","name_label":"host.set_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d687b364-5ce1-9ab4-0594-1568e7962192","$type":"role"},"OpaqueRef:b433a6d4-aac5-d6f5-429c-fb6e4c3fb586":{"uuid":"b433a6d4-aac5-d6f5-429c-fb6e4c3fb586","name_label":"host.add_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b433a6d4-aac5-d6f5-429c-fb6e4c3fb586","$type":"role"},"OpaqueRef:4fe83cfe-641d-099a-ca6d-921f4f3744ae":{"uuid":"4fe83cfe-641d-099a-ca6d-921f4f3744ae","name_label":"host.remove_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4fe83cfe-641d-099a-ca6d-921f4f3744ae","$type":"role"},"OpaqueRef:e45ebe26-d512-e459-4654-599e54505052":{"uuid":"e45ebe26-d512-e459-4654-599e54505052","name_label":"host.set_license_server","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e45ebe26-d512-e459-4654-599e54505052","$type":"role"},"OpaqueRef:fb50a443-8fe4-c0f0-a40a-35866e647531":{"uuid":"fb50a443-8fe4-c0f0-a40a-35866e647531","name_label":"host.add_to_license_server","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fb50a443-8fe4-c0f0-a40a-35866e647531","$type":"role"},"OpaqueRef:06528aa5-c284-54b2-d6a4-27e9eb6e7116":{"uuid":"06528aa5-c284-54b2-d6a4-27e9eb6e7116","name_label":"host.remove_from_license_server","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:06528aa5-c284-54b2-d6a4-27e9eb6e7116","$type":"role"},"OpaqueRef:70f39d80-4c28-3d5c-35dc-54b207783366":{"uuid":"70f39d80-4c28-3d5c-35dc-54b207783366","name_label":"host.set_guest_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:70f39d80-4c28-3d5c-35dc-54b207783366","$type":"role"},"OpaqueRef:894dfae1-9671-e03c-f718-537230205889":{"uuid":"894dfae1-9671-e03c-f718-537230205889","name_label":"host.add_to_guest_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:894dfae1-9671-e03c-f718-537230205889","$type":"role"},"OpaqueRef:caafd881-5d9d-b540-4676-3589c250a6c9":{"uuid":"caafd881-5d9d-b540-4676-3589c250a6c9","name_label":"host.remove_from_guest_vcpus_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:caafd881-5d9d-b540-4676-3589c250a6c9","$type":"role"},"OpaqueRef:157bc748-69c5-d7ce-1655-7ad8c5078239":{"uuid":"157bc748-69c5-d7ce-1655-7ad8c5078239","name_label":"host.disable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:157bc748-69c5-d7ce-1655-7ad8c5078239","$type":"role"},"OpaqueRef:4d5bc2f8-aae8-a968-6d42-5bbedb41cbe4":{"uuid":"4d5bc2f8-aae8-a968-6d42-5bbedb41cbe4","name_label":"host.enable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4d5bc2f8-aae8-a968-6d42-5bbedb41cbe4","$type":"role"},"OpaqueRef:2b7dadfd-042c-c435-c96f-e91c489b64e3":{"uuid":"2b7dadfd-042c-c435-c96f-e91c489b64e3","name_label":"host.shutdown","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2b7dadfd-042c-c435-c96f-e91c489b64e3","$type":"role"},"OpaqueRef:4449c091-e436-df61-1829-db3afd4b7939":{"uuid":"4449c091-e436-df61-1829-db3afd4b7939","name_label":"host.reboot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4449c091-e436-df61-1829-db3afd4b7939","$type":"role"},"OpaqueRef:25dad5ce-deb4-8208-fcb6-b393ab735a7f":{"uuid":"25dad5ce-deb4-8208-fcb6-b393ab735a7f","name_label":"host.dmesg","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:25dad5ce-deb4-8208-fcb6-b393ab735a7f","$type":"role"},"OpaqueRef:1062625b-dc3e-7604-3863-eac2fc25cfcc":{"uuid":"1062625b-dc3e-7604-3863-eac2fc25cfcc","name_label":"host.dmesg_clear","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1062625b-dc3e-7604-3863-eac2fc25cfcc","$type":"role"},"OpaqueRef:0b33ba31-b80b-e074-7262-65ad91ff9313":{"uuid":"0b33ba31-b80b-e074-7262-65ad91ff9313","name_label":"host.get_log","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0b33ba31-b80b-e074-7262-65ad91ff9313","$type":"role"},"OpaqueRef:965c6e0f-00eb-0f44-44fb-44155f833daa":{"uuid":"965c6e0f-00eb-0f44-44fb-44155f833daa","name_label":"host.send_debug_keys","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:965c6e0f-00eb-0f44-44fb-44155f833daa","$type":"role"},"OpaqueRef:759f62d0-2fbe-ef5d-cd7d-579117dca28f":{"uuid":"759f62d0-2fbe-ef5d-cd7d-579117dca28f","name_label":"host.bugreport_upload","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:759f62d0-2fbe-ef5d-cd7d-579117dca28f","$type":"role"},"OpaqueRef:10d871c1-c065-b472-0fef-42311c39c9b9":{"uuid":"10d871c1-c065-b472-0fef-42311c39c9b9","name_label":"host.list_methods","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:10d871c1-c065-b472-0fef-42311c39c9b9","$type":"role"},"OpaqueRef:7a4d8574-73c5-a75f-8e25-62e9d8d87113":{"uuid":"7a4d8574-73c5-a75f-8e25-62e9d8d87113","name_label":"host.license_apply","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a4d8574-73c5-a75f-8e25-62e9d8d87113","$type":"role"},"OpaqueRef:434bfc07-d354-2256-9a7a-d48b4df941bd":{"uuid":"434bfc07-d354-2256-9a7a-d48b4df941bd","name_label":"host.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:434bfc07-d354-2256-9a7a-d48b4df941bd","$type":"role"},"OpaqueRef:298b2e59-3b4b-dfa7-650a-7a70d07520fe":{"uuid":"298b2e59-3b4b-dfa7-650a-7a70d07520fe","name_label":"host.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:298b2e59-3b4b-dfa7-650a-7a70d07520fe","$type":"role"},"OpaqueRef:6c4904c4-41aa-cc49-c626-481866b4a6cb":{"uuid":"6c4904c4-41aa-cc49-c626-481866b4a6cb","name_label":"host.power_on","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6c4904c4-41aa-cc49-c626-481866b4a6cb","$type":"role"},"OpaqueRef:0c4ba76b-b445-caca-047c-d0dbd9c92973":{"uuid":"0c4ba76b-b445-caca-047c-d0dbd9c92973","name_label":"host.emergency_ha_disable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0c4ba76b-b445-caca-047c-d0dbd9c92973","$type":"role"},"OpaqueRef:7a6c63b2-3d09-4f35-e6a6-0d24d0cc8116":{"uuid":"7a6c63b2-3d09-4f35-e6a6-0d24d0cc8116","name_label":"host.ha_xapi_healthcheck","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a6c63b2-3d09-4f35-e6a6-0d24d0cc8116","$type":"role"},"OpaqueRef:a8bfecf9-7e65-f0b7-f087-a59845369df3":{"uuid":"a8bfecf9-7e65-f0b7-f087-a59845369df3","name_label":"host.get_data_sources","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8bfecf9-7e65-f0b7-f087-a59845369df3","$type":"role"},"OpaqueRef:2b1dd077-3590-b7cb-e141-0c960de7d0ee":{"uuid":"2b1dd077-3590-b7cb-e141-0c960de7d0ee","name_label":"host.record_data_source","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2b1dd077-3590-b7cb-e141-0c960de7d0ee","$type":"role"},"OpaqueRef:4bf590bd-2137-55dd-90cc-1735a84da788":{"uuid":"4bf590bd-2137-55dd-90cc-1735a84da788","name_label":"host.query_data_source","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4bf590bd-2137-55dd-90cc-1735a84da788","$type":"role"},"OpaqueRef:bb5242ed-06d6-e8df-b475-df888d527d33":{"uuid":"bb5242ed-06d6-e8df-b475-df888d527d33","name_label":"host.forget_data_source_archives","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb5242ed-06d6-e8df-b475-df888d527d33","$type":"role"},"OpaqueRef:882aa08b-b154-b2fb-8d7a-ff5e1121f986":{"uuid":"882aa08b-b154-b2fb-8d7a-ff5e1121f986","name_label":"host.assert_can_evacuate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:882aa08b-b154-b2fb-8d7a-ff5e1121f986","$type":"role"},"OpaqueRef:1e34f646-0d83-991e-6d57-53abf105526b":{"uuid":"1e34f646-0d83-991e-6d57-53abf105526b","name_label":"host.get_vms_which_prevent_evacuation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1e34f646-0d83-991e-6d57-53abf105526b","$type":"role"},"OpaqueRef:ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33":{"uuid":"ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33","name_label":"host.get_uncooperative_resident_vms","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33","$type":"role"},"OpaqueRef:31a52751-6ebe-5592-af6d-ea64a7272c60":{"uuid":"31a52751-6ebe-5592-af6d-ea64a7272c60","name_label":"host.evacuate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:31a52751-6ebe-5592-af6d-ea64a7272c60","$type":"role"},"OpaqueRef:814c2dd9-a7c3-b7b7-ecf1-f7f30b2f3125":{"uuid":"814c2dd9-a7c3-b7b7-ecf1-f7f30b2f3125","name_label":"host.syslog_reconfigure","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:814c2dd9-a7c3-b7b7-ecf1-f7f30b2f3125","$type":"role"},"OpaqueRef:308040cf-181e-3abb-9378-8dac73752bcb":{"uuid":"308040cf-181e-3abb-9378-8dac73752bcb","name_label":"host.management_reconfigure","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:308040cf-181e-3abb-9378-8dac73752bcb","$type":"role"},"OpaqueRef:b9c90c76-a349-aa8c-e732-21516da712a6":{"uuid":"b9c90c76-a349-aa8c-e732-21516da712a6","name_label":"host.local_management_reconfigure","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b9c90c76-a349-aa8c-e732-21516da712a6","$type":"role"},"OpaqueRef:64196488-4486-d1d2-88ab-ca36908f966a":{"uuid":"64196488-4486-d1d2-88ab-ca36908f966a","name_label":"host.management_disable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:64196488-4486-d1d2-88ab-ca36908f966a","$type":"role"},"OpaqueRef:a2a5b2a7-b9e0-a89b-65a7-dab5b977e250":{"uuid":"a2a5b2a7-b9e0-a89b-65a7-dab5b977e250","name_label":"host.get_management_interface","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a2a5b2a7-b9e0-a89b-65a7-dab5b977e250","$type":"role"},"OpaqueRef:57eb64a6-04db-6995-2a99-3eaf96be5263":{"uuid":"57eb64a6-04db-6995-2a99-3eaf96be5263","name_label":"host.get_system_status_capabilities","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:57eb64a6-04db-6995-2a99-3eaf96be5263","$type":"role"},"OpaqueRef:915e4dab-9537-bfa4-fac9-85addfb3eeac":{"uuid":"915e4dab-9537-bfa4-fac9-85addfb3eeac","name_label":"host.get_diagnostic_timing_stats","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:915e4dab-9537-bfa4-fac9-85addfb3eeac","$type":"role"},"OpaqueRef:33d71acb-3055-9b64-19e6-11eca4f43e8f":{"uuid":"33d71acb-3055-9b64-19e6-11eca4f43e8f","name_label":"host.restart_agent","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:33d71acb-3055-9b64-19e6-11eca4f43e8f","$type":"role"},"OpaqueRef:46279397-3447-5388-b6c1-2322f68ffd3c":{"uuid":"46279397-3447-5388-b6c1-2322f68ffd3c","name_label":"host.shutdown_agent","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:46279397-3447-5388-b6c1-2322f68ffd3c","$type":"role"},"OpaqueRef:6f21d652-38a6-3969-838c-c667c97a37eb":{"uuid":"6f21d652-38a6-3969-838c-c667c97a37eb","name_label":"host.set_hostname_live","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6f21d652-38a6-3969-838c-c667c97a37eb","$type":"role"},"OpaqueRef:4f7a7bae-a4ae-9024-ffd2-3bfe706c266b":{"uuid":"4f7a7bae-a4ae-9024-ffd2-3bfe706c266b","name_label":"host.is_in_emergency_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f7a7bae-a4ae-9024-ffd2-3bfe706c266b","$type":"role"},"OpaqueRef:2ef836d2-b9dd-5a23-c794-2e7589f36be0":{"uuid":"2ef836d2-b9dd-5a23-c794-2e7589f36be0","name_label":"host.compute_free_memory","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2ef836d2-b9dd-5a23-c794-2e7589f36be0","$type":"role"},"OpaqueRef:e0ca9324-e1ad-9179-5282-f7f36641bb1d":{"uuid":"e0ca9324-e1ad-9179-5282-f7f36641bb1d","name_label":"host.compute_memory_overhead","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e0ca9324-e1ad-9179-5282-f7f36641bb1d","$type":"role"},"OpaqueRef:cde0e8b8-03cf-537c-26a1-2f5a42d19add":{"uuid":"cde0e8b8-03cf-537c-26a1-2f5a42d19add","name_label":"host.sync_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cde0e8b8-03cf-537c-26a1-2f5a42d19add","$type":"role"},"OpaqueRef:b0b429bc-37ca-a61f-375a-8d7fce2156ea":{"uuid":"b0b429bc-37ca-a61f-375a-8d7fce2156ea","name_label":"host.backup_rrds","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b0b429bc-37ca-a61f-375a-8d7fce2156ea","$type":"role"},"OpaqueRef:f5df9029-1e65-e5e2-3c5e-b87aba3a034f":{"uuid":"f5df9029-1e65-e5e2-3c5e-b87aba3a034f","name_label":"host.create_new_blob","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f5df9029-1e65-e5e2-3c5e-b87aba3a034f","$type":"role"},"OpaqueRef:4aab3d2f-e037-ae17-f252-a9c3a710f703":{"uuid":"4aab3d2f-e037-ae17-f252-a9c3a710f703","name_label":"host.call_plugin","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4aab3d2f-e037-ae17-f252-a9c3a710f703","$type":"role"},"OpaqueRef:067511f8-54b7-de65-b4d9-dfb2089ac41a":{"uuid":"067511f8-54b7-de65-b4d9-dfb2089ac41a","name_label":"host.get_servertime","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:067511f8-54b7-de65-b4d9-dfb2089ac41a","$type":"role"},"OpaqueRef:1bb99abf-a34e-2a07-c87a-871871b84931":{"uuid":"1bb99abf-a34e-2a07-c87a-871871b84931","name_label":"host.get_server_localtime","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1bb99abf-a34e-2a07-c87a-871871b84931","$type":"role"},"OpaqueRef:a1870f39-4780-874e-a27e-b6d0d6b00c62":{"uuid":"a1870f39-4780-874e-a27e-b6d0d6b00c62","name_label":"host.enable_external_auth","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a1870f39-4780-874e-a27e-b6d0d6b00c62","$type":"role"},"OpaqueRef:b50cf74e-f790-b097-7804-89f26f0bdf5e":{"uuid":"b50cf74e-f790-b097-7804-89f26f0bdf5e","name_label":"host.disable_external_auth","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b50cf74e-f790-b097-7804-89f26f0bdf5e","$type":"role"},"OpaqueRef:051d2068-cedb-9155-c92d-1233e9fbc3e5":{"uuid":"051d2068-cedb-9155-c92d-1233e9fbc3e5","name_label":"host.retrieve_wlb_evacuate_recommendations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:051d2068-cedb-9155-c92d-1233e9fbc3e5","$type":"role"},"OpaqueRef:98742ea3-1cde-9b10-60fb-8aac5e8ea5fd":{"uuid":"98742ea3-1cde-9b10-60fb-8aac5e8ea5fd","name_label":"host.get_server_certificate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:98742ea3-1cde-9b10-60fb-8aac5e8ea5fd","$type":"role"},"OpaqueRef:b68cf926-2d18-a589-fc01-3899fb72e7f9":{"uuid":"b68cf926-2d18-a589-fc01-3899fb72e7f9","name_label":"host.apply_edition","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b68cf926-2d18-a589-fc01-3899fb72e7f9","$type":"role"},"OpaqueRef:2fa7f35e-eb7b-3e92-1773-53254df5bac4":{"uuid":"2fa7f35e-eb7b-3e92-1773-53254df5bac4","name_label":"host.refresh_pack_info","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2fa7f35e-eb7b-3e92-1773-53254df5bac4","$type":"role"},"OpaqueRef:5dc6aca6-9629-271e-f8fe-e8697e96e830":{"uuid":"5dc6aca6-9629-271e-f8fe-e8697e96e830","name_label":"host.set_power_on_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5dc6aca6-9629-271e-f8fe-e8697e96e830","$type":"role"},"OpaqueRef:3e520f03-18e0-1db7-a1bf-0688e967b901":{"uuid":"3e520f03-18e0-1db7-a1bf-0688e967b901","name_label":"host.set_cpu_features","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3e520f03-18e0-1db7-a1bf-0688e967b901","$type":"role"},"OpaqueRef:32978aed-c32d-e3c2-f0ac-634b8bb7e0dc":{"uuid":"32978aed-c32d-e3c2-f0ac-634b8bb7e0dc","name_label":"host.reset_cpu_features","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:32978aed-c32d-e3c2-f0ac-634b8bb7e0dc","$type":"role"},"OpaqueRef:5215045b-f90b-83a3-02ea-d2440c9e0d56":{"uuid":"5215045b-f90b-83a3-02ea-d2440c9e0d56","name_label":"host.reset_networking","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5215045b-f90b-83a3-02ea-d2440c9e0d56","$type":"role"},"OpaqueRef:84f916d1-f4d8-74a4-cccb-86a085eceb13":{"uuid":"84f916d1-f4d8-74a4-cccb-86a085eceb13","name_label":"host.enable_local_storage_caching","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:84f916d1-f4d8-74a4-cccb-86a085eceb13","$type":"role"},"OpaqueRef:1a107baf-c2e3-52ca-0b73-148f1514a238":{"uuid":"1a107baf-c2e3-52ca-0b73-148f1514a238","name_label":"host.disable_local_storage_caching","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1a107baf-c2e3-52ca-0b73-148f1514a238","$type":"role"},"OpaqueRef:929599e4-98c0-722d-54ac-5f2ffc3a73ca":{"uuid":"929599e4-98c0-722d-54ac-5f2ffc3a73ca","name_label":"host.get_sm_diagnostics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:929599e4-98c0-722d-54ac-5f2ffc3a73ca","$type":"role"},"OpaqueRef:1ba238a8-b474-3dff-5974-fab4099a3a7a":{"uuid":"1ba238a8-b474-3dff-5974-fab4099a3a7a","name_label":"host.get_thread_diagnostics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1ba238a8-b474-3dff-5974-fab4099a3a7a","$type":"role"},"OpaqueRef:ca0e5dcb-c5f3-bba0-db79-f9f3b5f3ad4b":{"uuid":"ca0e5dcb-c5f3-bba0-db79-f9f3b5f3ad4b","name_label":"host.sm_dp_destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ca0e5dcb-c5f3-bba0-db79-f9f3b5f3ad4b","$type":"role"},"OpaqueRef:49e40dbe-751f-51e0-6d70-53c7a7d80b18":{"uuid":"49e40dbe-751f-51e0-6d70-53c7a7d80b18","name_label":"host.sync_vlans","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:49e40dbe-751f-51e0-6d70-53c7a7d80b18","$type":"role"},"OpaqueRef:af6cd91b-d39a-af43-aabf-3f0d477c5e32":{"uuid":"af6cd91b-d39a-af43-aabf-3f0d477c5e32","name_label":"host.sync_tunnels","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:af6cd91b-d39a-af43-aabf-3f0d477c5e32","$type":"role"},"OpaqueRef:72183d9d-6b17-543f-d35a-461d3d2bcd28":{"uuid":"72183d9d-6b17-543f-d35a-461d3d2bcd28","name_label":"host.sync_pif_currently_attached","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:72183d9d-6b17-543f-d35a-461d3d2bcd28","$type":"role"},"OpaqueRef:0720d352-4b7b-fff3-45cf-860aee04908f":{"uuid":"0720d352-4b7b-fff3-45cf-860aee04908f","name_label":"host.migrate_receive","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0720d352-4b7b-fff3-45cf-860aee04908f","$type":"role"},"OpaqueRef:f8375961-adf9-f6f8-f8b2-333ac51d3fe3":{"uuid":"f8375961-adf9-f6f8-f8b2-333ac51d3fe3","name_label":"host.declare_dead","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f8375961-adf9-f6f8-f8b2-333ac51d3fe3","$type":"role"},"OpaqueRef:1fcbc379-fbbb-f702-d1ba-7158bead56df":{"uuid":"1fcbc379-fbbb-f702-d1ba-7158bead56df","name_label":"host.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1fcbc379-fbbb-f702-d1ba-7158bead56df","$type":"role"},"OpaqueRef:520813ad-5f48-b68b-da3a-36a944d0a2d5":{"uuid":"520813ad-5f48-b68b-da3a-36a944d0a2d5","name_label":"host.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:520813ad-5f48-b68b-da3a-36a944d0a2d5","$type":"role"},"OpaqueRef:1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d":{"uuid":"1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d","name_label":"host.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d","$type":"role"},"OpaqueRef:383340ed-7b65-ec60-3687-cd5b9a22dd4d":{"uuid":"383340ed-7b65-ec60-3687-cd5b9a22dd4d","name_label":"host_crashdump.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:383340ed-7b65-ec60-3687-cd5b9a22dd4d","$type":"role"},"OpaqueRef:c6cd9483-96d1-5a4e-8272-58d62903ba13":{"uuid":"c6cd9483-96d1-5a4e-8272-58d62903ba13","name_label":"host_crashdump.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c6cd9483-96d1-5a4e-8272-58d62903ba13","$type":"role"},"OpaqueRef:c935c5c6-6224-1650-60e8-8fe70daaa5c4":{"uuid":"c935c5c6-6224-1650-60e8-8fe70daaa5c4","name_label":"host_crashdump.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c935c5c6-6224-1650-60e8-8fe70daaa5c4","$type":"role"},"OpaqueRef:d9b34a9f-bd57-74ef-44ca-d5dc42e857bc":{"uuid":"d9b34a9f-bd57-74ef-44ca-d5dc42e857bc","name_label":"host_crashdump.get_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d9b34a9f-bd57-74ef-44ca-d5dc42e857bc","$type":"role"},"OpaqueRef:603d3545-44ef-8bee-7e48-7a9ec1fe0f4c":{"uuid":"603d3545-44ef-8bee-7e48-7a9ec1fe0f4c","name_label":"host_crashdump.get_timestamp","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:603d3545-44ef-8bee-7e48-7a9ec1fe0f4c","$type":"role"},"OpaqueRef:2ab258fa-f9f0-53ca-1a97-e319259e63d8":{"uuid":"2ab258fa-f9f0-53ca-1a97-e319259e63d8","name_label":"host_crashdump.get_size","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2ab258fa-f9f0-53ca-1a97-e319259e63d8","$type":"role"},"OpaqueRef:92828369-5a7f-e0cc-ff8a-20ce4e6a182d":{"uuid":"92828369-5a7f-e0cc-ff8a-20ce4e6a182d","name_label":"host_crashdump.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:92828369-5a7f-e0cc-ff8a-20ce4e6a182d","$type":"role"},"OpaqueRef:d98c92f1-3335-9aca-ecb5-60524be8cedd":{"uuid":"d98c92f1-3335-9aca-ecb5-60524be8cedd","name_label":"host_crashdump.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d98c92f1-3335-9aca-ecb5-60524be8cedd","$type":"role"},"OpaqueRef:8a2c5a80-6a75-4b6e-9a15-507e5e2feaef":{"uuid":"8a2c5a80-6a75-4b6e-9a15-507e5e2feaef","name_label":"host_crashdump.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8a2c5a80-6a75-4b6e-9a15-507e5e2feaef","$type":"role"},"OpaqueRef:0350282e-6237-8da2-ed67-a8503e1e5213":{"uuid":"0350282e-6237-8da2-ed67-a8503e1e5213","name_label":"host_crashdump.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0350282e-6237-8da2-ed67-a8503e1e5213","$type":"role"},"OpaqueRef:f5ce748e-a2df-70d9-39d3-07c6181cabd1":{"uuid":"f5ce748e-a2df-70d9-39d3-07c6181cabd1","name_label":"host_crashdump.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f5ce748e-a2df-70d9-39d3-07c6181cabd1","$type":"role"},"OpaqueRef:dbf21a59-f453-5f2b-f9ef-2e5ba8c84e51":{"uuid":"dbf21a59-f453-5f2b-f9ef-2e5ba8c84e51","name_label":"host_crashdump.upload","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dbf21a59-f453-5f2b-f9ef-2e5ba8c84e51","$type":"role"},"OpaqueRef:cf2e8f13-038a-7d7b-5021-c881eadac803":{"uuid":"cf2e8f13-038a-7d7b-5021-c881eadac803","name_label":"host_crashdump.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf2e8f13-038a-7d7b-5021-c881eadac803","$type":"role"},"OpaqueRef:ff8c2c53-80b5-03a6-88c0-ced5d925bc2f":{"uuid":"ff8c2c53-80b5-03a6-88c0-ced5d925bc2f","name_label":"host_crashdump.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ff8c2c53-80b5-03a6-88c0-ced5d925bc2f","$type":"role"},"OpaqueRef:027a3a06-ffc7-fc53-f107-b8ca78294326":{"uuid":"027a3a06-ffc7-fc53-f107-b8ca78294326","name_label":"host_crashdump.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:027a3a06-ffc7-fc53-f107-b8ca78294326","$type":"role"},"OpaqueRef:76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d":{"uuid":"76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d","name_label":"host_patch.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d","$type":"role"},"OpaqueRef:bf7f941b-03a6-dfab-5f08-5f1d5e046a8d":{"uuid":"bf7f941b-03a6-dfab-5f08-5f1d5e046a8d","name_label":"host_patch.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bf7f941b-03a6-dfab-5f08-5f1d5e046a8d","$type":"role"},"OpaqueRef:91b38c06-f1f7-acd5-a6f4-5e10e9decb8e":{"uuid":"91b38c06-f1f7-acd5-a6f4-5e10e9decb8e","name_label":"host_patch.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:91b38c06-f1f7-acd5-a6f4-5e10e9decb8e","$type":"role"},"OpaqueRef:a8accf3c-5e68-c1ad-347e-4b14086a0a3c":{"uuid":"a8accf3c-5e68-c1ad-347e-4b14086a0a3c","name_label":"host_patch.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8accf3c-5e68-c1ad-347e-4b14086a0a3c","$type":"role"},"OpaqueRef:0298a263-16aa-fa51-84d9-bf231b03257c":{"uuid":"0298a263-16aa-fa51-84d9-bf231b03257c","name_label":"host_patch.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0298a263-16aa-fa51-84d9-bf231b03257c","$type":"role"},"OpaqueRef:b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8":{"uuid":"b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8","name_label":"host_patch.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8","$type":"role"},"OpaqueRef:92424d6e-6c8b-e6cf-52f8-c1ecb18ac162":{"uuid":"92424d6e-6c8b-e6cf-52f8-c1ecb18ac162","name_label":"host_patch.get_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:92424d6e-6c8b-e6cf-52f8-c1ecb18ac162","$type":"role"},"OpaqueRef:b9b352a0-6f8e-854e-71b3-04d31b6483fd":{"uuid":"b9b352a0-6f8e-854e-71b3-04d31b6483fd","name_label":"host_patch.get_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b9b352a0-6f8e-854e-71b3-04d31b6483fd","$type":"role"},"OpaqueRef:e9d70821-4d5b-c6e8-0769-305ea28819df":{"uuid":"e9d70821-4d5b-c6e8-0769-305ea28819df","name_label":"host_patch.get_applied","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e9d70821-4d5b-c6e8-0769-305ea28819df","$type":"role"},"OpaqueRef:70a45f35-52c8-981e-b5b4-756e9dd422bf":{"uuid":"70a45f35-52c8-981e-b5b4-756e9dd422bf","name_label":"host_patch.get_timestamp_applied","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:70a45f35-52c8-981e-b5b4-756e9dd422bf","$type":"role"},"OpaqueRef:29f5163f-f0c4-062e-38a7-e652c0ed5987":{"uuid":"29f5163f-f0c4-062e-38a7-e652c0ed5987","name_label":"host_patch.get_size","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:29f5163f-f0c4-062e-38a7-e652c0ed5987","$type":"role"},"OpaqueRef:fa0065df-12b1-d909-9f18-0ee0e5905322":{"uuid":"fa0065df-12b1-d909-9f18-0ee0e5905322","name_label":"host_patch.get_pool_patch","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fa0065df-12b1-d909-9f18-0ee0e5905322","$type":"role"},"OpaqueRef:0075f8e8-9cd8-3a4f-89e8-f53ff0121590":{"uuid":"0075f8e8-9cd8-3a4f-89e8-f53ff0121590","name_label":"host_patch.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0075f8e8-9cd8-3a4f-89e8-f53ff0121590","$type":"role"},"OpaqueRef:75e54d6a-4fb2-f9dd-f2d4-de95edf0b0e0":{"uuid":"75e54d6a-4fb2-f9dd-f2d4-de95edf0b0e0","name_label":"host_patch.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:75e54d6a-4fb2-f9dd-f2d4-de95edf0b0e0","$type":"role"},"OpaqueRef:f1c54063-e84c-fe26-cdf1-4c3aad46c0b0":{"uuid":"f1c54063-e84c-fe26-cdf1-4c3aad46c0b0","name_label":"host_patch.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f1c54063-e84c-fe26-cdf1-4c3aad46c0b0","$type":"role"},"OpaqueRef:1c8fc301-adcf-4eec-d563-ff7e05e926f3":{"uuid":"1c8fc301-adcf-4eec-d563-ff7e05e926f3","name_label":"host_patch.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1c8fc301-adcf-4eec-d563-ff7e05e926f3","$type":"role"},"OpaqueRef:311d974c-0afa-b82c-5a37-5a82f64989c9":{"uuid":"311d974c-0afa-b82c-5a37-5a82f64989c9","name_label":"host_patch.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:311d974c-0afa-b82c-5a37-5a82f64989c9","$type":"role"},"OpaqueRef:89e4201d-e7b7-dd2a-702b-9f12ed923649":{"uuid":"89e4201d-e7b7-dd2a-702b-9f12ed923649","name_label":"host_patch.apply","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:89e4201d-e7b7-dd2a-702b-9f12ed923649","$type":"role"},"OpaqueRef:1cd93736-a017-b50b-a7ff-f84557f73b64":{"uuid":"1cd93736-a017-b50b-a7ff-f84557f73b64","name_label":"host_patch.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1cd93736-a017-b50b-a7ff-f84557f73b64","$type":"role"},"OpaqueRef:52e94cd3-f9ef-225b-9d23-133e521e39ec":{"uuid":"52e94cd3-f9ef-225b-9d23-133e521e39ec","name_label":"host_patch.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:52e94cd3-f9ef-225b-9d23-133e521e39ec","$type":"role"},"OpaqueRef:43bd2f40-5b02-5f5f-f2de-3355ce64f08d":{"uuid":"43bd2f40-5b02-5f5f-f2de-3355ce64f08d","name_label":"host_patch.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:43bd2f40-5b02-5f5f-f2de-3355ce64f08d","$type":"role"},"OpaqueRef:fa8c8b9e-82c2-1edd-0621-58b876ecb786":{"uuid":"fa8c8b9e-82c2-1edd-0621-58b876ecb786","name_label":"host_metrics.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fa8c8b9e-82c2-1edd-0621-58b876ecb786","$type":"role"},"OpaqueRef:25efdd5a-5572-0245-6f76-edd4d8ba87f2":{"uuid":"25efdd5a-5572-0245-6f76-edd4d8ba87f2","name_label":"host_metrics.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:25efdd5a-5572-0245-6f76-edd4d8ba87f2","$type":"role"},"OpaqueRef:43f83df9-8b01-dd53-da07-19c763c45316":{"uuid":"43f83df9-8b01-dd53-da07-19c763c45316","name_label":"host_metrics.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:43f83df9-8b01-dd53-da07-19c763c45316","$type":"role"},"OpaqueRef:b73723e7-74ed-dae5-a160-a31e2f96f64c":{"uuid":"b73723e7-74ed-dae5-a160-a31e2f96f64c","name_label":"host_metrics.get_memory_total","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b73723e7-74ed-dae5-a160-a31e2f96f64c","$type":"role"},"OpaqueRef:3763d099-4a3b-3905-7603-8e5a98dadcc6":{"uuid":"3763d099-4a3b-3905-7603-8e5a98dadcc6","name_label":"host_metrics.get_memory_free","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3763d099-4a3b-3905-7603-8e5a98dadcc6","$type":"role"},"OpaqueRef:7a01d196-5bf3-d888-ca53-f7c308d79daa":{"uuid":"7a01d196-5bf3-d888-ca53-f7c308d79daa","name_label":"host_metrics.get_live","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a01d196-5bf3-d888-ca53-f7c308d79daa","$type":"role"},"OpaqueRef:5b8ed78a-2c12-c8e0-c706-c960dcac0e02":{"uuid":"5b8ed78a-2c12-c8e0-c706-c960dcac0e02","name_label":"host_metrics.get_last_updated","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5b8ed78a-2c12-c8e0-c706-c960dcac0e02","$type":"role"},"OpaqueRef:f5e84d5c-9173-a902-ca07-aaa980e78e7a":{"uuid":"f5e84d5c-9173-a902-ca07-aaa980e78e7a","name_label":"host_metrics.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f5e84d5c-9173-a902-ca07-aaa980e78e7a","$type":"role"},"OpaqueRef:5c047b76-1c9a-d8be-5b95-3df509f9c875":{"uuid":"5c047b76-1c9a-d8be-5b95-3df509f9c875","name_label":"host_metrics.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5c047b76-1c9a-d8be-5b95-3df509f9c875","$type":"role"},"OpaqueRef:d778a608-bae2-4a80-3c10-c2ee0c3ececc":{"uuid":"d778a608-bae2-4a80-3c10-c2ee0c3ececc","name_label":"host_metrics.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d778a608-bae2-4a80-3c10-c2ee0c3ececc","$type":"role"},"OpaqueRef:e573799e-51de-10dc-7dd3-a55252fb8971":{"uuid":"e573799e-51de-10dc-7dd3-a55252fb8971","name_label":"host_metrics.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e573799e-51de-10dc-7dd3-a55252fb8971","$type":"role"},"OpaqueRef:f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088":{"uuid":"f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088","name_label":"host_metrics.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088","$type":"role"},"OpaqueRef:da79116d-658d-77fa-9595-51e744744bd9":{"uuid":"da79116d-658d-77fa-9595-51e744744bd9","name_label":"host_metrics.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:da79116d-658d-77fa-9595-51e744744bd9","$type":"role"},"OpaqueRef:7b46c171-b1db-a323-3b76-457ea95372d2":{"uuid":"7b46c171-b1db-a323-3b76-457ea95372d2","name_label":"host_metrics.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7b46c171-b1db-a323-3b76-457ea95372d2","$type":"role"},"OpaqueRef:363f935d-b9b0-96d5-6286-c7c611a0a65a":{"uuid":"363f935d-b9b0-96d5-6286-c7c611a0a65a","name_label":"host_cpu.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:363f935d-b9b0-96d5-6286-c7c611a0a65a","$type":"role"},"OpaqueRef:58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f":{"uuid":"58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f","name_label":"host_cpu.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f","$type":"role"},"OpaqueRef:2072d2a6-0563-826f-693b-1d3d46c4d4ed":{"uuid":"2072d2a6-0563-826f-693b-1d3d46c4d4ed","name_label":"host_cpu.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2072d2a6-0563-826f-693b-1d3d46c4d4ed","$type":"role"},"OpaqueRef:ad8c841c-d7b0-29d0-bbfc-e102b0cf29db":{"uuid":"ad8c841c-d7b0-29d0-bbfc-e102b0cf29db","name_label":"host_cpu.get_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ad8c841c-d7b0-29d0-bbfc-e102b0cf29db","$type":"role"},"OpaqueRef:ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c":{"uuid":"ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c","name_label":"host_cpu.get_number","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c","$type":"role"},"OpaqueRef:fd67acf4-c454-2308-703d-b1c548829599":{"uuid":"fd67acf4-c454-2308-703d-b1c548829599","name_label":"host_cpu.get_vendor","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fd67acf4-c454-2308-703d-b1c548829599","$type":"role"},"OpaqueRef:531b14e0-799d-158b-2741-b0722c44ef81":{"uuid":"531b14e0-799d-158b-2741-b0722c44ef81","name_label":"host_cpu.get_speed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:531b14e0-799d-158b-2741-b0722c44ef81","$type":"role"},"OpaqueRef:8deb8400-477c-d1ed-5e43-3a57cf19fc18":{"uuid":"8deb8400-477c-d1ed-5e43-3a57cf19fc18","name_label":"host_cpu.get_modelname","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8deb8400-477c-d1ed-5e43-3a57cf19fc18","$type":"role"},"OpaqueRef:bb254b62-2ce5-d18a-ea89-b9951d43540e":{"uuid":"bb254b62-2ce5-d18a-ea89-b9951d43540e","name_label":"host_cpu.get_family","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb254b62-2ce5-d18a-ea89-b9951d43540e","$type":"role"},"OpaqueRef:dac42fca-3f2b-9f12-984c-094ee89b8a3b":{"uuid":"dac42fca-3f2b-9f12-984c-094ee89b8a3b","name_label":"host_cpu.get_model","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dac42fca-3f2b-9f12-984c-094ee89b8a3b","$type":"role"},"OpaqueRef:bee385fd-db51-c95f-5dc9-e0cb27058fe4":{"uuid":"bee385fd-db51-c95f-5dc9-e0cb27058fe4","name_label":"host_cpu.get_stepping","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bee385fd-db51-c95f-5dc9-e0cb27058fe4","$type":"role"},"OpaqueRef:898a10e9-4929-667d-1f69-6084d82f95f2":{"uuid":"898a10e9-4929-667d-1f69-6084d82f95f2","name_label":"host_cpu.get_flags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:898a10e9-4929-667d-1f69-6084d82f95f2","$type":"role"},"OpaqueRef:0093bc43-35e1-4d14-5ae8-0d48a7c7696d":{"uuid":"0093bc43-35e1-4d14-5ae8-0d48a7c7696d","name_label":"host_cpu.get_features","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0093bc43-35e1-4d14-5ae8-0d48a7c7696d","$type":"role"},"OpaqueRef:8e640d08-58a8-3220-9ad7-2f6ce7ffcb54":{"uuid":"8e640d08-58a8-3220-9ad7-2f6ce7ffcb54","name_label":"host_cpu.get_utilisation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8e640d08-58a8-3220-9ad7-2f6ce7ffcb54","$type":"role"},"OpaqueRef:f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3":{"uuid":"f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3","name_label":"host_cpu.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3","$type":"role"},"OpaqueRef:a6d058f4-e42b-6f54-7e98-25d842a26157":{"uuid":"a6d058f4-e42b-6f54-7e98-25d842a26157","name_label":"host_cpu.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a6d058f4-e42b-6f54-7e98-25d842a26157","$type":"role"},"OpaqueRef:73a0ada7-ab59-3fc1-aca5-d649c7fe52b8":{"uuid":"73a0ada7-ab59-3fc1-aca5-d649c7fe52b8","name_label":"host_cpu.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:73a0ada7-ab59-3fc1-aca5-d649c7fe52b8","$type":"role"},"OpaqueRef:4351b221-3862-c22c-d2b0-f4e63dac5151":{"uuid":"4351b221-3862-c22c-d2b0-f4e63dac5151","name_label":"host_cpu.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4351b221-3862-c22c-d2b0-f4e63dac5151","$type":"role"},"OpaqueRef:4cf2b236-677b-9ed4-7466-d0e1337a0549":{"uuid":"4cf2b236-677b-9ed4-7466-d0e1337a0549","name_label":"host_cpu.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4cf2b236-677b-9ed4-7466-d0e1337a0549","$type":"role"},"OpaqueRef:b3db5cf5-cf31-a92b-edbf-05fe326e9844":{"uuid":"b3db5cf5-cf31-a92b-edbf-05fe326e9844","name_label":"host_cpu.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b3db5cf5-cf31-a92b-edbf-05fe326e9844","$type":"role"},"OpaqueRef:e3370dac-0910-8f7f-a68c-aa87ce861519":{"uuid":"e3370dac-0910-8f7f-a68c-aa87ce861519","name_label":"host_cpu.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e3370dac-0910-8f7f-a68c-aa87ce861519","$type":"role"},"OpaqueRef:68d3594f-230f-4fb6-5177-fd760bca1be6":{"uuid":"68d3594f-230f-4fb6-5177-fd760bca1be6","name_label":"network.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:68d3594f-230f-4fb6-5177-fd760bca1be6","$type":"role"},"OpaqueRef:6ad64869-f5c6-00aa-b2b8-8281cfd24e88":{"uuid":"6ad64869-f5c6-00aa-b2b8-8281cfd24e88","name_label":"network.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ad64869-f5c6-00aa-b2b8-8281cfd24e88","$type":"role"},"OpaqueRef:bfd6aaa0-e3c7-2b73-47c5-06903a2d09bd":{"uuid":"bfd6aaa0-e3c7-2b73-47c5-06903a2d09bd","name_label":"network.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bfd6aaa0-e3c7-2b73-47c5-06903a2d09bd","$type":"role"},"OpaqueRef:dc3df6cd-f17c-73a7-b27d-eb95a8be35ae":{"uuid":"dc3df6cd-f17c-73a7-b27d-eb95a8be35ae","name_label":"network.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dc3df6cd-f17c-73a7-b27d-eb95a8be35ae","$type":"role"},"OpaqueRef:ab7a8ddb-0a66-957e-b67c-2623919816b3":{"uuid":"ab7a8ddb-0a66-957e-b67c-2623919816b3","name_label":"network.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab7a8ddb-0a66-957e-b67c-2623919816b3","$type":"role"},"OpaqueRef:70178e57-b50b-900e-a105-0b50d5961ad2":{"uuid":"70178e57-b50b-900e-a105-0b50d5961ad2","name_label":"network.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:70178e57-b50b-900e-a105-0b50d5961ad2","$type":"role"},"OpaqueRef:84facb10-a76d-d587-f1b4-fd1bfffbbd13":{"uuid":"84facb10-a76d-d587-f1b4-fd1bfffbbd13","name_label":"network.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:84facb10-a76d-d587-f1b4-fd1bfffbbd13","$type":"role"},"OpaqueRef:f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f":{"uuid":"f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f","name_label":"network.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f","$type":"role"},"OpaqueRef:5e271507-05bb-a4b4-2aa1-45a1d678a3c3":{"uuid":"5e271507-05bb-a4b4-2aa1-45a1d678a3c3","name_label":"network.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5e271507-05bb-a4b4-2aa1-45a1d678a3c3","$type":"role"},"OpaqueRef:9b129852-5a6b-938a-6657-d7fb8c0fd1d8":{"uuid":"9b129852-5a6b-938a-6657-d7fb8c0fd1d8","name_label":"network.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9b129852-5a6b-938a-6657-d7fb8c0fd1d8","$type":"role"},"OpaqueRef:1e749289-18cf-7c15-dfef-7c563ac409d8":{"uuid":"1e749289-18cf-7c15-dfef-7c563ac409d8","name_label":"network.get_vifs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1e749289-18cf-7c15-dfef-7c563ac409d8","$type":"role"},"OpaqueRef:182ecb35-daed-9ee8-efc7-cacab112b589":{"uuid":"182ecb35-daed-9ee8-efc7-cacab112b589","name_label":"network.get_pifs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:182ecb35-daed-9ee8-efc7-cacab112b589","$type":"role"},"OpaqueRef:13cd1c58-7c1e-1ab4-65ed-9ff82b888688":{"uuid":"13cd1c58-7c1e-1ab4-65ed-9ff82b888688","name_label":"network.get_mtu","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:13cd1c58-7c1e-1ab4-65ed-9ff82b888688","$type":"role"},"OpaqueRef:8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0":{"uuid":"8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0","name_label":"network.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0","$type":"role"},"OpaqueRef:a06fc2d3-81c9-76bd-b9b3-d00973854b22":{"uuid":"a06fc2d3-81c9-76bd-b9b3-d00973854b22","name_label":"network.get_bridge","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a06fc2d3-81c9-76bd-b9b3-d00973854b22","$type":"role"},"OpaqueRef:29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2":{"uuid":"29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2","name_label":"network.get_blobs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2","$type":"role"},"OpaqueRef:941b5182-310c-b1c2-fbf4-1409241add9a":{"uuid":"941b5182-310c-b1c2-fbf4-1409241add9a","name_label":"network.get_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:941b5182-310c-b1c2-fbf4-1409241add9a","$type":"role"},"OpaqueRef:975df00f-053b-2fe4-70ce-41b80b2814f9":{"uuid":"975df00f-053b-2fe4-70ce-41b80b2814f9","name_label":"network.get_default_locking_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:975df00f-053b-2fe4-70ce-41b80b2814f9","$type":"role"},"OpaqueRef:9bcb81ec-e4b1-1dbd-9ac6-d1ce045e431f":{"uuid":"9bcb81ec-e4b1-1dbd-9ac6-d1ce045e431f","name_label":"network.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9bcb81ec-e4b1-1dbd-9ac6-d1ce045e431f","$type":"role"},"OpaqueRef:6595c05b-14d4-782f-08c1-76d06528b230":{"uuid":"6595c05b-14d4-782f-08c1-76d06528b230","name_label":"network.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6595c05b-14d4-782f-08c1-76d06528b230","$type":"role"},"OpaqueRef:ca855242-855a-9952-32db-65969a8ce3fb":{"uuid":"ca855242-855a-9952-32db-65969a8ce3fb","name_label":"network.set_mtu","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ca855242-855a-9952-32db-65969a8ce3fb","$type":"role"},"OpaqueRef:6dfd9693-4e48-6ad0-839e-1c5788befe1b":{"uuid":"6dfd9693-4e48-6ad0-839e-1c5788befe1b","name_label":"network.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6dfd9693-4e48-6ad0-839e-1c5788befe1b","$type":"role"},"OpaqueRef:ca8cf9dc-ddab-1305-639a-51d0047802ba":{"uuid":"ca8cf9dc-ddab-1305-639a-51d0047802ba","name_label":"network.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ca8cf9dc-ddab-1305-639a-51d0047802ba","$type":"role"},"OpaqueRef:bfdf5c96-6ada-a5ef-cc47-ea345940662e":{"uuid":"bfdf5c96-6ada-a5ef-cc47-ea345940662e","name_label":"network.add_to_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bfdf5c96-6ada-a5ef-cc47-ea345940662e","$type":"role"},"OpaqueRef:f825b844-c7b4-2900-cf4a-5cd059d26dc1":{"uuid":"f825b844-c7b4-2900-cf4a-5cd059d26dc1","name_label":"network.add_to_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f825b844-c7b4-2900-cf4a-5cd059d26dc1","$type":"role"},"OpaqueRef:1681d655-5c34-3b05-1c48-771660b0f3a6":{"uuid":"1681d655-5c34-3b05-1c48-771660b0f3a6","name_label":"network.add_to_other_config/key:xencentercreateinprogress","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1681d655-5c34-3b05-1c48-771660b0f3a6","$type":"role"},"OpaqueRef:3503fe61-6e9f-f993-a243-f0810918323e":{"uuid":"3503fe61-6e9f-f993-a243-f0810918323e","name_label":"network.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3503fe61-6e9f-f993-a243-f0810918323e","$type":"role"},"OpaqueRef:53ca7741-71e1-66c1-c42d-6d9351b41551":{"uuid":"53ca7741-71e1-66c1-c42d-6d9351b41551","name_label":"network.remove_from_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:53ca7741-71e1-66c1-c42d-6d9351b41551","$type":"role"},"OpaqueRef:39bad4e7-597f-2ecf-93c6-39b8d945de5d":{"uuid":"39bad4e7-597f-2ecf-93c6-39b8d945de5d","name_label":"network.remove_from_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:39bad4e7-597f-2ecf-93c6-39b8d945de5d","$type":"role"},"OpaqueRef:a1421191-fe98-3281-a792-d201a2de2bf6":{"uuid":"a1421191-fe98-3281-a792-d201a2de2bf6","name_label":"network.remove_from_other_config/key:xencentercreateinprogress","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a1421191-fe98-3281-a792-d201a2de2bf6","$type":"role"},"OpaqueRef:1f9dfeb1-7d99-1409-e6eb-d9522e1ca3d6":{"uuid":"1f9dfeb1-7d99-1409-e6eb-d9522e1ca3d6","name_label":"network.set_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1f9dfeb1-7d99-1409-e6eb-d9522e1ca3d6","$type":"role"},"OpaqueRef:d535938f-a852-c579-75fd-f7064065ecbb":{"uuid":"d535938f-a852-c579-75fd-f7064065ecbb","name_label":"network.add_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d535938f-a852-c579-75fd-f7064065ecbb","$type":"role"},"OpaqueRef:d91aa452-182d-736b-a240-4414fe355a93":{"uuid":"d91aa452-182d-736b-a240-4414fe355a93","name_label":"network.remove_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d91aa452-182d-736b-a240-4414fe355a93","$type":"role"},"OpaqueRef:7397cc86-02af-1ace-9d80-ecdcd9c4de15":{"uuid":"7397cc86-02af-1ace-9d80-ecdcd9c4de15","name_label":"network.attach","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7397cc86-02af-1ace-9d80-ecdcd9c4de15","$type":"role"},"OpaqueRef:02d648b1-48f8-6a7a-3051-f984dd7c1c85":{"uuid":"02d648b1-48f8-6a7a-3051-f984dd7c1c85","name_label":"network.pool_introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:02d648b1-48f8-6a7a-3051-f984dd7c1c85","$type":"role"},"OpaqueRef:0b0c7ac7-145f-625d-4c63-97793c187f0a":{"uuid":"0b0c7ac7-145f-625d-4c63-97793c187f0a","name_label":"network.create_new_blob","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0b0c7ac7-145f-625d-4c63-97793c187f0a","$type":"role"},"OpaqueRef:a1a30854-8645-fe8b-81c4-f296f125254a":{"uuid":"a1a30854-8645-fe8b-81c4-f296f125254a","name_label":"network.set_default_locking_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a1a30854-8645-fe8b-81c4-f296f125254a","$type":"role"},"OpaqueRef:631cd70a-a589-ba49-f1c1-918a54e47ba5":{"uuid":"631cd70a-a589-ba49-f1c1-918a54e47ba5","name_label":"network.attach_for_vm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:631cd70a-a589-ba49-f1c1-918a54e47ba5","$type":"role"},"OpaqueRef:ec32a884-e824-e654-e472-1ba82e2db748":{"uuid":"ec32a884-e824-e654-e472-1ba82e2db748","name_label":"network.detach_for_vm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ec32a884-e824-e654-e472-1ba82e2db748","$type":"role"},"OpaqueRef:7d45ebaa-c032-5209-010f-bda83e9995c0":{"uuid":"7d45ebaa-c032-5209-010f-bda83e9995c0","name_label":"network.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7d45ebaa-c032-5209-010f-bda83e9995c0","$type":"role"},"OpaqueRef:13657521-3100-32e7-3d38-a1c0df842c77":{"uuid":"13657521-3100-32e7-3d38-a1c0df842c77","name_label":"network.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:13657521-3100-32e7-3d38-a1c0df842c77","$type":"role"},"OpaqueRef:4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259":{"uuid":"4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259","name_label":"network.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259","$type":"role"},"OpaqueRef:55377552-76fe-e589-d4cf-02f64f49f350":{"uuid":"55377552-76fe-e589-d4cf-02f64f49f350","name_label":"vif.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:55377552-76fe-e589-d4cf-02f64f49f350","$type":"role"},"OpaqueRef:d36bf25c-cffc-3785-e9a4-1d6dd826cd03":{"uuid":"d36bf25c-cffc-3785-e9a4-1d6dd826cd03","name_label":"vif.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d36bf25c-cffc-3785-e9a4-1d6dd826cd03","$type":"role"},"OpaqueRef:97b2ea1f-c272-bbfa-4e1b-ed567d0cc9b3":{"uuid":"97b2ea1f-c272-bbfa-4e1b-ed567d0cc9b3","name_label":"vif.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:97b2ea1f-c272-bbfa-4e1b-ed567d0cc9b3","$type":"role"},"OpaqueRef:cf9b90c9-439b-c33c-c4eb-86e8b1bf4157":{"uuid":"cf9b90c9-439b-c33c-c4eb-86e8b1bf4157","name_label":"vif.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf9b90c9-439b-c33c-c4eb-86e8b1bf4157","$type":"role"},"OpaqueRef:53e3bde4-ef9a-5933-62c6-89a992f399b0":{"uuid":"53e3bde4-ef9a-5933-62c6-89a992f399b0","name_label":"vif.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:53e3bde4-ef9a-5933-62c6-89a992f399b0","$type":"role"},"OpaqueRef:216b0366-cd42-24db-57b1-3c8fce70e4ba":{"uuid":"216b0366-cd42-24db-57b1-3c8fce70e4ba","name_label":"vif.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:216b0366-cd42-24db-57b1-3c8fce70e4ba","$type":"role"},"OpaqueRef:5beceb5c-5880-09dd-3eba-d5133d463f9b":{"uuid":"5beceb5c-5880-09dd-3eba-d5133d463f9b","name_label":"vif.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5beceb5c-5880-09dd-3eba-d5133d463f9b","$type":"role"},"OpaqueRef:7bd495ef-abbe-3363-4f68-64a70eed83eb":{"uuid":"7bd495ef-abbe-3363-4f68-64a70eed83eb","name_label":"vif.get_device","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7bd495ef-abbe-3363-4f68-64a70eed83eb","$type":"role"},"OpaqueRef:61fbb0bd-b453-3369-98a3-53f4f8a7fe6c":{"uuid":"61fbb0bd-b453-3369-98a3-53f4f8a7fe6c","name_label":"vif.get_network","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:61fbb0bd-b453-3369-98a3-53f4f8a7fe6c","$type":"role"},"OpaqueRef:00056679-3372-9b8e-6488-10d423edb0ad":{"uuid":"00056679-3372-9b8e-6488-10d423edb0ad","name_label":"vif.get_vm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:00056679-3372-9b8e-6488-10d423edb0ad","$type":"role"},"OpaqueRef:64067282-0137-c32d-3ae4-7b20b6a93ad1":{"uuid":"64067282-0137-c32d-3ae4-7b20b6a93ad1","name_label":"vif.get_mac","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:64067282-0137-c32d-3ae4-7b20b6a93ad1","$type":"role"},"OpaqueRef:97015ed2-cf9c-9ff4-9d34-b1ae9a377788":{"uuid":"97015ed2-cf9c-9ff4-9d34-b1ae9a377788","name_label":"vif.get_mtu","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:97015ed2-cf9c-9ff4-9d34-b1ae9a377788","$type":"role"},"OpaqueRef:c492097b-20fb-0584-6559-893d4d35c82d":{"uuid":"c492097b-20fb-0584-6559-893d4d35c82d","name_label":"vif.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c492097b-20fb-0584-6559-893d4d35c82d","$type":"role"},"OpaqueRef:de3c3005-8901-9213-2c61-45e6d489c801":{"uuid":"de3c3005-8901-9213-2c61-45e6d489c801","name_label":"vif.get_currently_attached","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:de3c3005-8901-9213-2c61-45e6d489c801","$type":"role"},"OpaqueRef:0fd4e192-6082-738e-c2c5-27cf2cb5f467":{"uuid":"0fd4e192-6082-738e-c2c5-27cf2cb5f467","name_label":"vif.get_status_code","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0fd4e192-6082-738e-c2c5-27cf2cb5f467","$type":"role"},"OpaqueRef:3f4867e1-9401-bc2a-a260-5561bfe8d08c":{"uuid":"3f4867e1-9401-bc2a-a260-5561bfe8d08c","name_label":"vif.get_status_detail","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3f4867e1-9401-bc2a-a260-5561bfe8d08c","$type":"role"},"OpaqueRef:3ad57875-8d33-5adf-7184-24f4df2b6981":{"uuid":"3ad57875-8d33-5adf-7184-24f4df2b6981","name_label":"vif.get_runtime_properties","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3ad57875-8d33-5adf-7184-24f4df2b6981","$type":"role"},"OpaqueRef:5c07d45f-d9f5-207e-1e3e-70c0b5abc69b":{"uuid":"5c07d45f-d9f5-207e-1e3e-70c0b5abc69b","name_label":"vif.get_qos_algorithm_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5c07d45f-d9f5-207e-1e3e-70c0b5abc69b","$type":"role"},"OpaqueRef:73ba289d-8cab-51d5-a8f6-ae42be46b61c":{"uuid":"73ba289d-8cab-51d5-a8f6-ae42be46b61c","name_label":"vif.get_qos_algorithm_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:73ba289d-8cab-51d5-a8f6-ae42be46b61c","$type":"role"},"OpaqueRef:88447749-f966-bae0-a649-ad12c1391cc2":{"uuid":"88447749-f966-bae0-a649-ad12c1391cc2","name_label":"vif.get_qos_supported_algorithms","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:88447749-f966-bae0-a649-ad12c1391cc2","$type":"role"},"OpaqueRef:9799e20d-f5ed-6371-1fd7-6ad3fb1df729":{"uuid":"9799e20d-f5ed-6371-1fd7-6ad3fb1df729","name_label":"vif.get_metrics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9799e20d-f5ed-6371-1fd7-6ad3fb1df729","$type":"role"},"OpaqueRef:b06ba59a-e556-7f5c-902a-871a8004c149":{"uuid":"b06ba59a-e556-7f5c-902a-871a8004c149","name_label":"vif.get_mac_autogenerated","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b06ba59a-e556-7f5c-902a-871a8004c149","$type":"role"},"OpaqueRef:6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2":{"uuid":"6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2","name_label":"vif.get_locking_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2","$type":"role"},"OpaqueRef:522142a2-c5ce-4095-85b3-13bf2ca36175":{"uuid":"522142a2-c5ce-4095-85b3-13bf2ca36175","name_label":"vif.get_ipv4_allowed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:522142a2-c5ce-4095-85b3-13bf2ca36175","$type":"role"},"OpaqueRef:2fa043de-5e00-c856-7ceb-0b0a266f0a4c":{"uuid":"2fa043de-5e00-c856-7ceb-0b0a266f0a4c","name_label":"vif.get_ipv6_allowed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2fa043de-5e00-c856-7ceb-0b0a266f0a4c","$type":"role"},"OpaqueRef:7356e67b-7806-3749-5459-4409094561d0":{"uuid":"7356e67b-7806-3749-5459-4409094561d0","name_label":"vif.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7356e67b-7806-3749-5459-4409094561d0","$type":"role"},"OpaqueRef:e18acdf2-b7ed-9d85-2aad-10e4a767b62e":{"uuid":"e18acdf2-b7ed-9d85-2aad-10e4a767b62e","name_label":"vif.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e18acdf2-b7ed-9d85-2aad-10e4a767b62e","$type":"role"},"OpaqueRef:81ee6b76-da69-18b4-18b1-f4e09aa1b119":{"uuid":"81ee6b76-da69-18b4-18b1-f4e09aa1b119","name_label":"vif.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:81ee6b76-da69-18b4-18b1-f4e09aa1b119","$type":"role"},"OpaqueRef:61080452-d30d-cfed-7985-400322d30d53":{"uuid":"61080452-d30d-cfed-7985-400322d30d53","name_label":"vif.set_qos_algorithm_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:61080452-d30d-cfed-7985-400322d30d53","$type":"role"},"OpaqueRef:bb7587c3-a0d4-46e4-af05-6ed1cc33d23b":{"uuid":"bb7587c3-a0d4-46e4-af05-6ed1cc33d23b","name_label":"vif.set_qos_algorithm_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb7587c3-a0d4-46e4-af05-6ed1cc33d23b","$type":"role"},"OpaqueRef:1cf6f512-a2d7-1189-1e32-3a1e58c1e66f":{"uuid":"1cf6f512-a2d7-1189-1e32-3a1e58c1e66f","name_label":"vif.add_to_qos_algorithm_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1cf6f512-a2d7-1189-1e32-3a1e58c1e66f","$type":"role"},"OpaqueRef:a04e6272-743e-809b-dc4b-a2edd6fdeb0b":{"uuid":"a04e6272-743e-809b-dc4b-a2edd6fdeb0b","name_label":"vif.remove_from_qos_algorithm_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a04e6272-743e-809b-dc4b-a2edd6fdeb0b","$type":"role"},"OpaqueRef:5f3a7f4d-29e6-df00-2bd0-6a16b0fef414":{"uuid":"5f3a7f4d-29e6-df00-2bd0-6a16b0fef414","name_label":"vif.plug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5f3a7f4d-29e6-df00-2bd0-6a16b0fef414","$type":"role"},"OpaqueRef:6ed0eebe-e588-e5da-a6c5-c24353ce5d42":{"uuid":"6ed0eebe-e588-e5da-a6c5-c24353ce5d42","name_label":"vif.unplug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ed0eebe-e588-e5da-a6c5-c24353ce5d42","$type":"role"},"OpaqueRef:e46476eb-f04e-f11e-ea3c-88dbe418ccb9":{"uuid":"e46476eb-f04e-f11e-ea3c-88dbe418ccb9","name_label":"vif.unplug_force","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e46476eb-f04e-f11e-ea3c-88dbe418ccb9","$type":"role"},"OpaqueRef:d6b34164-85a4-cd30-0470-208c285eadb9":{"uuid":"d6b34164-85a4-cd30-0470-208c285eadb9","name_label":"vif.set_locking_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6b34164-85a4-cd30-0470-208c285eadb9","$type":"role"},"OpaqueRef:cb1caf20-8fea-fc40-c45f-7ed34f3a17bf":{"uuid":"cb1caf20-8fea-fc40-c45f-7ed34f3a17bf","name_label":"vif.set_ipv4_allowed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cb1caf20-8fea-fc40-c45f-7ed34f3a17bf","$type":"role"},"OpaqueRef:9c3da382-c08c-24e4-6f06-66fdac2ecbd5":{"uuid":"9c3da382-c08c-24e4-6f06-66fdac2ecbd5","name_label":"vif.add_ipv4_allowed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9c3da382-c08c-24e4-6f06-66fdac2ecbd5","$type":"role"},"OpaqueRef:e9b01f04-bfbc-8d01-dd70-6e9298c449f0":{"uuid":"e9b01f04-bfbc-8d01-dd70-6e9298c449f0","name_label":"vif.remove_ipv4_allowed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e9b01f04-bfbc-8d01-dd70-6e9298c449f0","$type":"role"},"OpaqueRef:57d49215-72b9-ca21-6247-989c7593e029":{"uuid":"57d49215-72b9-ca21-6247-989c7593e029","name_label":"vif.set_ipv6_allowed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:57d49215-72b9-ca21-6247-989c7593e029","$type":"role"},"OpaqueRef:4f538c4c-a6f2-5ac5-f80c-7290a5ad4c55":{"uuid":"4f538c4c-a6f2-5ac5-f80c-7290a5ad4c55","name_label":"vif.add_ipv6_allowed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f538c4c-a6f2-5ac5-f80c-7290a5ad4c55","$type":"role"},"OpaqueRef:e11f4509-d43f-a0ac-ef89-596c271c91e1":{"uuid":"e11f4509-d43f-a0ac-ef89-596c271c91e1","name_label":"vif.remove_ipv6_allowed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e11f4509-d43f-a0ac-ef89-596c271c91e1","$type":"role"},"OpaqueRef:dc84c131-adf9-d460-4988-294d88b46924":{"uuid":"dc84c131-adf9-d460-4988-294d88b46924","name_label":"vif.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dc84c131-adf9-d460-4988-294d88b46924","$type":"role"},"OpaqueRef:f559123e-c887-6ab7-49cb-675b315d69d7":{"uuid":"f559123e-c887-6ab7-49cb-675b315d69d7","name_label":"vif.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f559123e-c887-6ab7-49cb-675b315d69d7","$type":"role"},"OpaqueRef:9de70f7b-12d1-6625-5970-894335e62431":{"uuid":"9de70f7b-12d1-6625-5970-894335e62431","name_label":"vif.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9de70f7b-12d1-6625-5970-894335e62431","$type":"role"},"OpaqueRef:7c2f2761-86e0-d176-8791-cccfe25d8700":{"uuid":"7c2f2761-86e0-d176-8791-cccfe25d8700","name_label":"vif_metrics.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7c2f2761-86e0-d176-8791-cccfe25d8700","$type":"role"},"OpaqueRef:e4fd9189-1c6e-8b2d-690b-8f7923b2477e":{"uuid":"e4fd9189-1c6e-8b2d-690b-8f7923b2477e","name_label":"vif_metrics.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e4fd9189-1c6e-8b2d-690b-8f7923b2477e","$type":"role"},"OpaqueRef:1069a4f0-17e8-cde0-bf04-ffa08d2878ea":{"uuid":"1069a4f0-17e8-cde0-bf04-ffa08d2878ea","name_label":"vif_metrics.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1069a4f0-17e8-cde0-bf04-ffa08d2878ea","$type":"role"},"OpaqueRef:3d8acc2e-3bf1-9245-35dd-493184d88770":{"uuid":"3d8acc2e-3bf1-9245-35dd-493184d88770","name_label":"vif_metrics.get_io_read_kbs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3d8acc2e-3bf1-9245-35dd-493184d88770","$type":"role"},"OpaqueRef:c41cce49-6fcf-44c2-1c59-99d127686bff":{"uuid":"c41cce49-6fcf-44c2-1c59-99d127686bff","name_label":"vif_metrics.get_io_write_kbs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c41cce49-6fcf-44c2-1c59-99d127686bff","$type":"role"},"OpaqueRef:03c65989-d970-28e1-2d72-8cf1ffb06a95":{"uuid":"03c65989-d970-28e1-2d72-8cf1ffb06a95","name_label":"vif_metrics.get_last_updated","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:03c65989-d970-28e1-2d72-8cf1ffb06a95","$type":"role"},"OpaqueRef:2a8ae027-e709-28ac-8de5-56adc284daa6":{"uuid":"2a8ae027-e709-28ac-8de5-56adc284daa6","name_label":"vif_metrics.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2a8ae027-e709-28ac-8de5-56adc284daa6","$type":"role"},"OpaqueRef:3eded99d-19e8-b6ca-435c-7b6f2b220b3c":{"uuid":"3eded99d-19e8-b6ca-435c-7b6f2b220b3c","name_label":"vif_metrics.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3eded99d-19e8-b6ca-435c-7b6f2b220b3c","$type":"role"},"OpaqueRef:c58d6c90-98ef-d44f-f4d4-47bbfebf6a28":{"uuid":"c58d6c90-98ef-d44f-f4d4-47bbfebf6a28","name_label":"vif_metrics.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c58d6c90-98ef-d44f-f4d4-47bbfebf6a28","$type":"role"},"OpaqueRef:3a08550d-abba-d9d6-bcf3-df495332dc7f":{"uuid":"3a08550d-abba-d9d6-bcf3-df495332dc7f","name_label":"vif_metrics.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3a08550d-abba-d9d6-bcf3-df495332dc7f","$type":"role"},"OpaqueRef:396ee7a7-5e5c-9399-d89a-427109e6ab21":{"uuid":"396ee7a7-5e5c-9399-d89a-427109e6ab21","name_label":"vif_metrics.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:396ee7a7-5e5c-9399-d89a-427109e6ab21","$type":"role"},"OpaqueRef:cfbc0c25-0514-0a40-1c57-9e063667d33e":{"uuid":"cfbc0c25-0514-0a40-1c57-9e063667d33e","name_label":"vif_metrics.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cfbc0c25-0514-0a40-1c57-9e063667d33e","$type":"role"},"OpaqueRef:a6d34497-1418-7a05-f792-60f8cbd8f7c5":{"uuid":"a6d34497-1418-7a05-f792-60f8cbd8f7c5","name_label":"vif_metrics.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a6d34497-1418-7a05-f792-60f8cbd8f7c5","$type":"role"},"OpaqueRef:6fcc710b-6217-2c38-f2bf-2455728b2b0d":{"uuid":"6fcc710b-6217-2c38-f2bf-2455728b2b0d","name_label":"pif.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6fcc710b-6217-2c38-f2bf-2455728b2b0d","$type":"role"},"OpaqueRef:805b2422-565d-0957-0898-5d5a078ee501":{"uuid":"805b2422-565d-0957-0898-5d5a078ee501","name_label":"pif.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:805b2422-565d-0957-0898-5d5a078ee501","$type":"role"},"OpaqueRef:3d022c5c-d53d-333c-706d-c175777da30c":{"uuid":"3d022c5c-d53d-333c-706d-c175777da30c","name_label":"pif.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3d022c5c-d53d-333c-706d-c175777da30c","$type":"role"},"OpaqueRef:09593fa1-1b87-1d23-8e61-bf79b93236fc":{"uuid":"09593fa1-1b87-1d23-8e61-bf79b93236fc","name_label":"pif.get_device","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:09593fa1-1b87-1d23-8e61-bf79b93236fc","$type":"role"},"OpaqueRef:3cc87704-357e-0ea7-e918-dcae6f73fa8d":{"uuid":"3cc87704-357e-0ea7-e918-dcae6f73fa8d","name_label":"pif.get_network","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3cc87704-357e-0ea7-e918-dcae6f73fa8d","$type":"role"},"OpaqueRef:49bc2875-5acd-548c-8823-bd2c6c2322d2":{"uuid":"49bc2875-5acd-548c-8823-bd2c6c2322d2","name_label":"pif.get_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:49bc2875-5acd-548c-8823-bd2c6c2322d2","$type":"role"},"OpaqueRef:ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae":{"uuid":"ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae","name_label":"pif.get_mac","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae","$type":"role"},"OpaqueRef:57fb16f4-51fc-7798-1845-070ca26ba746":{"uuid":"57fb16f4-51fc-7798-1845-070ca26ba746","name_label":"pif.get_mtu","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:57fb16f4-51fc-7798-1845-070ca26ba746","$type":"role"},"OpaqueRef:544ea348-b989-8d3e-6042-13999626c5e0":{"uuid":"544ea348-b989-8d3e-6042-13999626c5e0","name_label":"pif.get_vlan","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:544ea348-b989-8d3e-6042-13999626c5e0","$type":"role"},"OpaqueRef:34c8cdd1-6c69-506d-2e10-1a051d5f7d60":{"uuid":"34c8cdd1-6c69-506d-2e10-1a051d5f7d60","name_label":"pif.get_metrics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:34c8cdd1-6c69-506d-2e10-1a051d5f7d60","$type":"role"},"OpaqueRef:db6de8b4-bfd5-c3a5-905f-94106bb5a2ab":{"uuid":"db6de8b4-bfd5-c3a5-905f-94106bb5a2ab","name_label":"pif.get_physical","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:db6de8b4-bfd5-c3a5-905f-94106bb5a2ab","$type":"role"},"OpaqueRef:c1207e93-3ffe-9166-4ff7-80b763788417":{"uuid":"c1207e93-3ffe-9166-4ff7-80b763788417","name_label":"pif.get_currently_attached","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c1207e93-3ffe-9166-4ff7-80b763788417","$type":"role"},"OpaqueRef:2804a382-939d-876d-c50a-dc18d199bfe8":{"uuid":"2804a382-939d-876d-c50a-dc18d199bfe8","name_label":"pif.get_ip_configuration_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2804a382-939d-876d-c50a-dc18d199bfe8","$type":"role"},"OpaqueRef:4b182675-bbcd-8a69-3671-5803cb22b481":{"uuid":"4b182675-bbcd-8a69-3671-5803cb22b481","name_label":"pif.get_ip","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4b182675-bbcd-8a69-3671-5803cb22b481","$type":"role"},"OpaqueRef:e01a098d-e8fc-81fa-764e-c07a342d219a":{"uuid":"e01a098d-e8fc-81fa-764e-c07a342d219a","name_label":"pif.get_netmask","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e01a098d-e8fc-81fa-764e-c07a342d219a","$type":"role"},"OpaqueRef:2036d54b-2179-ce69-a922-9b2d5cce6916":{"uuid":"2036d54b-2179-ce69-a922-9b2d5cce6916","name_label":"pif.get_gateway","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2036d54b-2179-ce69-a922-9b2d5cce6916","$type":"role"},"OpaqueRef:58e3edff-51a7-7143-020c-11e3821c18cf":{"uuid":"58e3edff-51a7-7143-020c-11e3821c18cf","name_label":"pif.get_dns","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:58e3edff-51a7-7143-020c-11e3821c18cf","$type":"role"},"OpaqueRef:283982da-ebce-2cc4-faeb-4bee137761bc":{"uuid":"283982da-ebce-2cc4-faeb-4bee137761bc","name_label":"pif.get_bond_slave_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:283982da-ebce-2cc4-faeb-4bee137761bc","$type":"role"},"OpaqueRef:f17f15a8-882f-380a-1e75-7074e4e51e1e":{"uuid":"f17f15a8-882f-380a-1e75-7074e4e51e1e","name_label":"pif.get_bond_master_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f17f15a8-882f-380a-1e75-7074e4e51e1e","$type":"role"},"OpaqueRef:d6271e34-14a8-85dd-28dd-f090b63ff588":{"uuid":"d6271e34-14a8-85dd-28dd-f090b63ff588","name_label":"pif.get_vlan_master_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6271e34-14a8-85dd-28dd-f090b63ff588","$type":"role"},"OpaqueRef:499f5734-a8d4-4c55-83af-f0b1e2a9d67e":{"uuid":"499f5734-a8d4-4c55-83af-f0b1e2a9d67e","name_label":"pif.get_vlan_slave_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:499f5734-a8d4-4c55-83af-f0b1e2a9d67e","$type":"role"},"OpaqueRef:89e757f3-4619-1fe9-1b1b-3afdc986af84":{"uuid":"89e757f3-4619-1fe9-1b1b-3afdc986af84","name_label":"pif.get_management","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:89e757f3-4619-1fe9-1b1b-3afdc986af84","$type":"role"},"OpaqueRef:62801603-a12a-b8ae-eb7a-0890725c7310":{"uuid":"62801603-a12a-b8ae-eb7a-0890725c7310","name_label":"pif.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:62801603-a12a-b8ae-eb7a-0890725c7310","$type":"role"},"OpaqueRef:8673c2e3-429c-7599-35e6-e9a804892d2a":{"uuid":"8673c2e3-429c-7599-35e6-e9a804892d2a","name_label":"pif.get_disallow_unplug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8673c2e3-429c-7599-35e6-e9a804892d2a","$type":"role"},"OpaqueRef:3ee06801-74e6-08cd-b237-7636668ced4f":{"uuid":"3ee06801-74e6-08cd-b237-7636668ced4f","name_label":"pif.get_tunnel_access_pif_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3ee06801-74e6-08cd-b237-7636668ced4f","$type":"role"},"OpaqueRef:af9bf6e8-720f-8eba-b583-5ee68d14de90":{"uuid":"af9bf6e8-720f-8eba-b583-5ee68d14de90","name_label":"pif.get_tunnel_transport_pif_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:af9bf6e8-720f-8eba-b583-5ee68d14de90","$type":"role"},"OpaqueRef:a212b9b8-aa8a-6243-180e-4270a46cec2f":{"uuid":"a212b9b8-aa8a-6243-180e-4270a46cec2f","name_label":"pif.get_ipv6_configuration_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a212b9b8-aa8a-6243-180e-4270a46cec2f","$type":"role"},"OpaqueRef:a1492f6d-0469-f57f-074a-88453672a2de":{"uuid":"a1492f6d-0469-f57f-074a-88453672a2de","name_label":"pif.get_ipv6","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a1492f6d-0469-f57f-074a-88453672a2de","$type":"role"},"OpaqueRef:e756d67d-3c2b-a489-3c3e-763748f886e4":{"uuid":"e756d67d-3c2b-a489-3c3e-763748f886e4","name_label":"pif.get_ipv6_gateway","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e756d67d-3c2b-a489-3c3e-763748f886e4","$type":"role"},"OpaqueRef:39b6f8c8-bfbf-b629-5d92-6594e516730a":{"uuid":"39b6f8c8-bfbf-b629-5d92-6594e516730a","name_label":"pif.get_primary_address_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:39b6f8c8-bfbf-b629-5d92-6594e516730a","$type":"role"},"OpaqueRef:5c1423bc-7a5b-2534-ba37-295c7186dcd7":{"uuid":"5c1423bc-7a5b-2534-ba37-295c7186dcd7","name_label":"pif.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5c1423bc-7a5b-2534-ba37-295c7186dcd7","$type":"role"},"OpaqueRef:19b78c71-2cdb-8e28-6211-047d04e287dd":{"uuid":"19b78c71-2cdb-8e28-6211-047d04e287dd","name_label":"pif.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:19b78c71-2cdb-8e28-6211-047d04e287dd","$type":"role"},"OpaqueRef:52a2adf9-049b-7a18-c484-87ac5d72ad97":{"uuid":"52a2adf9-049b-7a18-c484-87ac5d72ad97","name_label":"pif.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:52a2adf9-049b-7a18-c484-87ac5d72ad97","$type":"role"},"OpaqueRef:8f70e9d9-bd3c-93e3-173a-49afe26cf566":{"uuid":"8f70e9d9-bd3c-93e3-173a-49afe26cf566","name_label":"pif.set_disallow_unplug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8f70e9d9-bd3c-93e3-173a-49afe26cf566","$type":"role"},"OpaqueRef:e14060f6-a3a3-d143-5b31-560944959d13":{"uuid":"e14060f6-a3a3-d143-5b31-560944959d13","name_label":"pif.create_vlan","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e14060f6-a3a3-d143-5b31-560944959d13","$type":"role"},"OpaqueRef:47f88d02-ac99-2cdb-418c-c9e2e9ce7bf8":{"uuid":"47f88d02-ac99-2cdb-418c-c9e2e9ce7bf8","name_label":"pif.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:47f88d02-ac99-2cdb-418c-c9e2e9ce7bf8","$type":"role"},"OpaqueRef:91dea557-fa82-8092-0fda-fe2a011642a3":{"uuid":"91dea557-fa82-8092-0fda-fe2a011642a3","name_label":"pif.reconfigure_ip","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:91dea557-fa82-8092-0fda-fe2a011642a3","$type":"role"},"OpaqueRef:aded9fab-67cb-95b8-83f7-4348145f15d8":{"uuid":"aded9fab-67cb-95b8-83f7-4348145f15d8","name_label":"pif.reconfigure_ipv6","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aded9fab-67cb-95b8-83f7-4348145f15d8","$type":"role"},"OpaqueRef:13e4fa9b-f6b2-1004-c292-596ef96c91a2":{"uuid":"13e4fa9b-f6b2-1004-c292-596ef96c91a2","name_label":"pif.set_primary_address_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:13e4fa9b-f6b2-1004-c292-596ef96c91a2","$type":"role"},"OpaqueRef:097acb71-bfbc-544c-6510-425fbc5bf0c5":{"uuid":"097acb71-bfbc-544c-6510-425fbc5bf0c5","name_label":"pif.scan","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:097acb71-bfbc-544c-6510-425fbc5bf0c5","$type":"role"},"OpaqueRef:ba181e9c-bb3f-a159-54b8-0c408b51b702":{"uuid":"ba181e9c-bb3f-a159-54b8-0c408b51b702","name_label":"pif.introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ba181e9c-bb3f-a159-54b8-0c408b51b702","$type":"role"},"OpaqueRef:8f7d7db9-4e24-7316-f50f-56e7e62efddc":{"uuid":"8f7d7db9-4e24-7316-f50f-56e7e62efddc","name_label":"pif.forget","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8f7d7db9-4e24-7316-f50f-56e7e62efddc","$type":"role"},"OpaqueRef:991d65d4-eb8c-9dd0-f0cf-9cae1c91d90c":{"uuid":"991d65d4-eb8c-9dd0-f0cf-9cae1c91d90c","name_label":"pif.unplug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:991d65d4-eb8c-9dd0-f0cf-9cae1c91d90c","$type":"role"},"OpaqueRef:7f956af8-0126-4429-cc23-033090d5a028":{"uuid":"7f956af8-0126-4429-cc23-033090d5a028","name_label":"pif.plug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7f956af8-0126-4429-cc23-033090d5a028","$type":"role"},"OpaqueRef:edaec0ce-7f5d-2886-0101-5adf8a69a6e7":{"uuid":"edaec0ce-7f5d-2886-0101-5adf8a69a6e7","name_label":"pif.pool_introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:edaec0ce-7f5d-2886-0101-5adf8a69a6e7","$type":"role"},"OpaqueRef:9362d5c2-3f86-50f3-d68a-2949915fab05":{"uuid":"9362d5c2-3f86-50f3-d68a-2949915fab05","name_label":"pif.db_introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9362d5c2-3f86-50f3-d68a-2949915fab05","$type":"role"},"OpaqueRef:e638b68d-cf4a-f81d-64c9-df34168b2137":{"uuid":"e638b68d-cf4a-f81d-64c9-df34168b2137","name_label":"pif.db_forget","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e638b68d-cf4a-f81d-64c9-df34168b2137","$type":"role"},"OpaqueRef:c18535f5-924a-5a11-7522-c8ba88f23eac":{"uuid":"c18535f5-924a-5a11-7522-c8ba88f23eac","name_label":"pif.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c18535f5-924a-5a11-7522-c8ba88f23eac","$type":"role"},"OpaqueRef:acf9e287-4110-4a5a-c753-7925bb43678f":{"uuid":"acf9e287-4110-4a5a-c753-7925bb43678f","name_label":"pif.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:acf9e287-4110-4a5a-c753-7925bb43678f","$type":"role"},"OpaqueRef:d7435e71-c22c-3fdd-bbcf-33849cc039c3":{"uuid":"d7435e71-c22c-3fdd-bbcf-33849cc039c3","name_label":"pif.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d7435e71-c22c-3fdd-bbcf-33849cc039c3","$type":"role"},"OpaqueRef:3057ba41-6ab0-21bb-c4b9-2a53ded43c5a":{"uuid":"3057ba41-6ab0-21bb-c4b9-2a53ded43c5a","name_label":"pif_metrics.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3057ba41-6ab0-21bb-c4b9-2a53ded43c5a","$type":"role"},"OpaqueRef:e69c0e91-d962-f102-9200-5b00d7ff495a":{"uuid":"e69c0e91-d962-f102-9200-5b00d7ff495a","name_label":"pif_metrics.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e69c0e91-d962-f102-9200-5b00d7ff495a","$type":"role"},"OpaqueRef:784956f0-eb8f-e687-118f-5ee8fabc47dd":{"uuid":"784956f0-eb8f-e687-118f-5ee8fabc47dd","name_label":"pif_metrics.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:784956f0-eb8f-e687-118f-5ee8fabc47dd","$type":"role"},"OpaqueRef:d0e2be89-4c37-3974-149e-c06d8358e0be":{"uuid":"d0e2be89-4c37-3974-149e-c06d8358e0be","name_label":"pif_metrics.get_io_read_kbs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d0e2be89-4c37-3974-149e-c06d8358e0be","$type":"role"},"OpaqueRef:c317c9dd-000f-61e2-91f4-cafc36cc3f65":{"uuid":"c317c9dd-000f-61e2-91f4-cafc36cc3f65","name_label":"pif_metrics.get_io_write_kbs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c317c9dd-000f-61e2-91f4-cafc36cc3f65","$type":"role"},"OpaqueRef:dc719910-a701-5800-fe16-18e3cb4fc00e":{"uuid":"dc719910-a701-5800-fe16-18e3cb4fc00e","name_label":"pif_metrics.get_carrier","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dc719910-a701-5800-fe16-18e3cb4fc00e","$type":"role"},"OpaqueRef:0dfef1da-7988-b6a2-0752-20b8dfcad6b5":{"uuid":"0dfef1da-7988-b6a2-0752-20b8dfcad6b5","name_label":"pif_metrics.get_vendor_id","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0dfef1da-7988-b6a2-0752-20b8dfcad6b5","$type":"role"},"OpaqueRef:a7f5635e-754b-2c47-0182-b2cd6eaa6a4c":{"uuid":"a7f5635e-754b-2c47-0182-b2cd6eaa6a4c","name_label":"pif_metrics.get_vendor_name","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a7f5635e-754b-2c47-0182-b2cd6eaa6a4c","$type":"role"},"OpaqueRef:21c41bf0-8c5e-b6de-5dc7-f71cb751a430":{"uuid":"21c41bf0-8c5e-b6de-5dc7-f71cb751a430","name_label":"pif_metrics.get_device_id","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:21c41bf0-8c5e-b6de-5dc7-f71cb751a430","$type":"role"},"OpaqueRef:37548ef6-abc2-9f49-7fd5-efe65a5b5448":{"uuid":"37548ef6-abc2-9f49-7fd5-efe65a5b5448","name_label":"pif_metrics.get_device_name","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:37548ef6-abc2-9f49-7fd5-efe65a5b5448","$type":"role"},"OpaqueRef:5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044":{"uuid":"5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044","name_label":"pif_metrics.get_speed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044","$type":"role"},"OpaqueRef:6682964a-92f7-ece2-30b1-583be0f69b15":{"uuid":"6682964a-92f7-ece2-30b1-583be0f69b15","name_label":"pif_metrics.get_duplex","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6682964a-92f7-ece2-30b1-583be0f69b15","$type":"role"},"OpaqueRef:eb0f1687-b443-2873-e3c5-3464197a2a50":{"uuid":"eb0f1687-b443-2873-e3c5-3464197a2a50","name_label":"pif_metrics.get_pci_bus_path","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eb0f1687-b443-2873-e3c5-3464197a2a50","$type":"role"},"OpaqueRef:ca439f57-3fa8-ee93-f2a5-5d4f72cbb907":{"uuid":"ca439f57-3fa8-ee93-f2a5-5d4f72cbb907","name_label":"pif_metrics.get_last_updated","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ca439f57-3fa8-ee93-f2a5-5d4f72cbb907","$type":"role"},"OpaqueRef:28069750-7807-2fa6-9bc2-bae7456f5de9":{"uuid":"28069750-7807-2fa6-9bc2-bae7456f5de9","name_label":"pif_metrics.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:28069750-7807-2fa6-9bc2-bae7456f5de9","$type":"role"},"OpaqueRef:a988b203-87ad-2774-daff-abb02c8b8242":{"uuid":"a988b203-87ad-2774-daff-abb02c8b8242","name_label":"pif_metrics.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a988b203-87ad-2774-daff-abb02c8b8242","$type":"role"},"OpaqueRef:3a933cb7-62fd-7929-3052-b8f7caffc9c1":{"uuid":"3a933cb7-62fd-7929-3052-b8f7caffc9c1","name_label":"pif_metrics.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3a933cb7-62fd-7929-3052-b8f7caffc9c1","$type":"role"},"OpaqueRef:d68b60f7-6618-0e76-a3b7-226f3c30b789":{"uuid":"d68b60f7-6618-0e76-a3b7-226f3c30b789","name_label":"pif_metrics.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d68b60f7-6618-0e76-a3b7-226f3c30b789","$type":"role"},"OpaqueRef:450af311-5669-e4c7-6ca3-b3350172eafb":{"uuid":"450af311-5669-e4c7-6ca3-b3350172eafb","name_label":"pif_metrics.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:450af311-5669-e4c7-6ca3-b3350172eafb","$type":"role"},"OpaqueRef:9fb5a1d6-e53b-24af-bb7c-49a942f0bc65":{"uuid":"9fb5a1d6-e53b-24af-bb7c-49a942f0bc65","name_label":"pif_metrics.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9fb5a1d6-e53b-24af-bb7c-49a942f0bc65","$type":"role"},"OpaqueRef:ad6b4de5-bb53-c27c-f34a-033542cbcf61":{"uuid":"ad6b4de5-bb53-c27c-f34a-033542cbcf61","name_label":"pif_metrics.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ad6b4de5-bb53-c27c-f34a-033542cbcf61","$type":"role"},"OpaqueRef:cf8f0a82-e845-5f00-68b3-d0905d31e8be":{"uuid":"cf8f0a82-e845-5f00-68b3-d0905d31e8be","name_label":"bond.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf8f0a82-e845-5f00-68b3-d0905d31e8be","$type":"role"},"OpaqueRef:fc7cd54b-2fde-4fe7-4caa-e152930fed06":{"uuid":"fc7cd54b-2fde-4fe7-4caa-e152930fed06","name_label":"bond.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fc7cd54b-2fde-4fe7-4caa-e152930fed06","$type":"role"},"OpaqueRef:d619c5a5-074a-a015-1c1d-a0a0e62bfaa5":{"uuid":"d619c5a5-074a-a015-1c1d-a0a0e62bfaa5","name_label":"bond.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d619c5a5-074a-a015-1c1d-a0a0e62bfaa5","$type":"role"},"OpaqueRef:84d71586-5ce8-2364-c74b-0017c93b82b2":{"uuid":"84d71586-5ce8-2364-c74b-0017c93b82b2","name_label":"bond.get_master","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:84d71586-5ce8-2364-c74b-0017c93b82b2","$type":"role"},"OpaqueRef:0e28a706-8960-58a7-4f9d-c3b0eea64a0a":{"uuid":"0e28a706-8960-58a7-4f9d-c3b0eea64a0a","name_label":"bond.get_slaves","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e28a706-8960-58a7-4f9d-c3b0eea64a0a","$type":"role"},"OpaqueRef:e3637139-7f57-56b3-b8e8-4fd736f11588":{"uuid":"e3637139-7f57-56b3-b8e8-4fd736f11588","name_label":"bond.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e3637139-7f57-56b3-b8e8-4fd736f11588","$type":"role"},"OpaqueRef:164a66c7-e0b0-7fd7-ccd3-d13042353c78":{"uuid":"164a66c7-e0b0-7fd7-ccd3-d13042353c78","name_label":"bond.get_primary_slave","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:164a66c7-e0b0-7fd7-ccd3-d13042353c78","$type":"role"},"OpaqueRef:88fc5a8b-e5f3-612f-7a32-e5a651abd04b":{"uuid":"88fc5a8b-e5f3-612f-7a32-e5a651abd04b","name_label":"bond.get_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:88fc5a8b-e5f3-612f-7a32-e5a651abd04b","$type":"role"},"OpaqueRef:0ed8495c-b53e-7951-d041-14df9605e6f8":{"uuid":"0ed8495c-b53e-7951-d041-14df9605e6f8","name_label":"bond.get_properties","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0ed8495c-b53e-7951-d041-14df9605e6f8","$type":"role"},"OpaqueRef:88f8cb5b-b92e-0ab4-307d-2ed4ea447475":{"uuid":"88f8cb5b-b92e-0ab4-307d-2ed4ea447475","name_label":"bond.get_links_up","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:88f8cb5b-b92e-0ab4-307d-2ed4ea447475","$type":"role"},"OpaqueRef:8d328936-9d02-d5de-239c-a5ac7683fe55":{"uuid":"8d328936-9d02-d5de-239c-a5ac7683fe55","name_label":"bond.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8d328936-9d02-d5de-239c-a5ac7683fe55","$type":"role"},"OpaqueRef:832c3695-97bc-0149-a67b-72168f3399ad":{"uuid":"832c3695-97bc-0149-a67b-72168f3399ad","name_label":"bond.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:832c3695-97bc-0149-a67b-72168f3399ad","$type":"role"},"OpaqueRef:4ac0e45c-dfd2-201f-80ea-ebfd8d71427b":{"uuid":"4ac0e45c-dfd2-201f-80ea-ebfd8d71427b","name_label":"bond.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4ac0e45c-dfd2-201f-80ea-ebfd8d71427b","$type":"role"},"OpaqueRef:efb7cbd4-61f4-0486-ddf7-7b2d7b75eaf0":{"uuid":"efb7cbd4-61f4-0486-ddf7-7b2d7b75eaf0","name_label":"bond.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:efb7cbd4-61f4-0486-ddf7-7b2d7b75eaf0","$type":"role"},"OpaqueRef:0e80dc41-4ea3-d605-ee1c-80287a3bac23":{"uuid":"0e80dc41-4ea3-d605-ee1c-80287a3bac23","name_label":"bond.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e80dc41-4ea3-d605-ee1c-80287a3bac23","$type":"role"},"OpaqueRef:7a68af31-9342-776f-91f6-ed3e1fe3b25e":{"uuid":"7a68af31-9342-776f-91f6-ed3e1fe3b25e","name_label":"bond.set_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a68af31-9342-776f-91f6-ed3e1fe3b25e","$type":"role"},"OpaqueRef:4c00e8eb-9e93-8e7c-ae07-284d760310fa":{"uuid":"4c00e8eb-9e93-8e7c-ae07-284d760310fa","name_label":"bond.set_property","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4c00e8eb-9e93-8e7c-ae07-284d760310fa","$type":"role"},"OpaqueRef:e7d108ee-2082-98c2-acb6-5884f39f3056":{"uuid":"e7d108ee-2082-98c2-acb6-5884f39f3056","name_label":"bond.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e7d108ee-2082-98c2-acb6-5884f39f3056","$type":"role"},"OpaqueRef:62084664-4e15-5ca5-99eb-00007ed70717":{"uuid":"62084664-4e15-5ca5-99eb-00007ed70717","name_label":"bond.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:62084664-4e15-5ca5-99eb-00007ed70717","$type":"role"},"OpaqueRef:f2df7036-f418-a415-ddca-d31ba6ff611e":{"uuid":"f2df7036-f418-a415-ddca-d31ba6ff611e","name_label":"bond.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f2df7036-f418-a415-ddca-d31ba6ff611e","$type":"role"},"OpaqueRef:4b368ad8-3eec-31b3-5fb0-d1070507cfd0":{"uuid":"4b368ad8-3eec-31b3-5fb0-d1070507cfd0","name_label":"vlan.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4b368ad8-3eec-31b3-5fb0-d1070507cfd0","$type":"role"},"OpaqueRef:b7db64ab-97ce-4dfb-45d7-f505756fe4a8":{"uuid":"b7db64ab-97ce-4dfb-45d7-f505756fe4a8","name_label":"vlan.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b7db64ab-97ce-4dfb-45d7-f505756fe4a8","$type":"role"},"OpaqueRef:25d4aaa3-582d-7e6e-eb43-8fba9c42568c":{"uuid":"25d4aaa3-582d-7e6e-eb43-8fba9c42568c","name_label":"vlan.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:25d4aaa3-582d-7e6e-eb43-8fba9c42568c","$type":"role"},"OpaqueRef:ff776240-dbd0-9ef8-f34f-42c85cf01b3a":{"uuid":"ff776240-dbd0-9ef8-f34f-42c85cf01b3a","name_label":"vlan.get_tagged_pif","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ff776240-dbd0-9ef8-f34f-42c85cf01b3a","$type":"role"},"OpaqueRef:559b520f-dcef-e6b3-6a21-3a74d84d3fa8":{"uuid":"559b520f-dcef-e6b3-6a21-3a74d84d3fa8","name_label":"vlan.get_untagged_pif","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:559b520f-dcef-e6b3-6a21-3a74d84d3fa8","$type":"role"},"OpaqueRef:1a37ccfd-f500-bd50-bb25-f20411bfbb35":{"uuid":"1a37ccfd-f500-bd50-bb25-f20411bfbb35","name_label":"vlan.get_tag","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1a37ccfd-f500-bd50-bb25-f20411bfbb35","$type":"role"},"OpaqueRef:086121bb-2bba-06e9-bab2-6b7414b0e4eb":{"uuid":"086121bb-2bba-06e9-bab2-6b7414b0e4eb","name_label":"vlan.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:086121bb-2bba-06e9-bab2-6b7414b0e4eb","$type":"role"},"OpaqueRef:bb1cdcf0-b311-780a-0ef3-f513d856d37c":{"uuid":"bb1cdcf0-b311-780a-0ef3-f513d856d37c","name_label":"vlan.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb1cdcf0-b311-780a-0ef3-f513d856d37c","$type":"role"},"OpaqueRef:46e0c783-d1a0-5ef3-18ff-b10089c66fce":{"uuid":"46e0c783-d1a0-5ef3-18ff-b10089c66fce","name_label":"vlan.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:46e0c783-d1a0-5ef3-18ff-b10089c66fce","$type":"role"},"OpaqueRef:6d7ab29d-bf4b-8fb0-5b6f-d988b1e17a60":{"uuid":"6d7ab29d-bf4b-8fb0-5b6f-d988b1e17a60","name_label":"vlan.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d7ab29d-bf4b-8fb0-5b6f-d988b1e17a60","$type":"role"},"OpaqueRef:051ea96b-6608-7758-cc1a-70c7e474ad7f":{"uuid":"051ea96b-6608-7758-cc1a-70c7e474ad7f","name_label":"vlan.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:051ea96b-6608-7758-cc1a-70c7e474ad7f","$type":"role"},"OpaqueRef:8e7d8b4d-8ffb-c803-5d00-49a3d08d43fc":{"uuid":"8e7d8b4d-8ffb-c803-5d00-49a3d08d43fc","name_label":"vlan.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8e7d8b4d-8ffb-c803-5d00-49a3d08d43fc","$type":"role"},"OpaqueRef:2fd85a90-74c9-15e6-d4f7-e59c7f584ac4":{"uuid":"2fd85a90-74c9-15e6-d4f7-e59c7f584ac4","name_label":"vlan.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2fd85a90-74c9-15e6-d4f7-e59c7f584ac4","$type":"role"},"OpaqueRef:54cb0e64-7459-04bb-621b-4f16f42ba21f":{"uuid":"54cb0e64-7459-04bb-621b-4f16f42ba21f","name_label":"vlan.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:54cb0e64-7459-04bb-621b-4f16f42ba21f","$type":"role"},"OpaqueRef:9e2e9082-8361-adb3-1e6b-51178368e9a5":{"uuid":"9e2e9082-8361-adb3-1e6b-51178368e9a5","name_label":"vlan.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9e2e9082-8361-adb3-1e6b-51178368e9a5","$type":"role"},"OpaqueRef:f1ab04b2-6571-fff1-66c0-720ca6c50bfe":{"uuid":"f1ab04b2-6571-fff1-66c0-720ca6c50bfe","name_label":"sm.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f1ab04b2-6571-fff1-66c0-720ca6c50bfe","$type":"role"},"OpaqueRef:616109ba-d73f-ad1f-a4ac-4a1454b7b742":{"uuid":"616109ba-d73f-ad1f-a4ac-4a1454b7b742","name_label":"sm.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:616109ba-d73f-ad1f-a4ac-4a1454b7b742","$type":"role"},"OpaqueRef:8295c108-ca0f-bc2e-1d77-d580d9dcbdff":{"uuid":"8295c108-ca0f-bc2e-1d77-d580d9dcbdff","name_label":"sm.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8295c108-ca0f-bc2e-1d77-d580d9dcbdff","$type":"role"},"OpaqueRef:65e61767-fa64-53ff-0056-6491eaec7d1c":{"uuid":"65e61767-fa64-53ff-0056-6491eaec7d1c","name_label":"sm.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:65e61767-fa64-53ff-0056-6491eaec7d1c","$type":"role"},"OpaqueRef:b2dc1fd3-b84c-d045-efe6-174954f53ad0":{"uuid":"b2dc1fd3-b84c-d045-efe6-174954f53ad0","name_label":"sm.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b2dc1fd3-b84c-d045-efe6-174954f53ad0","$type":"role"},"OpaqueRef:a534c226-3cce-06b6-3a28-cbf339c0e385":{"uuid":"a534c226-3cce-06b6-3a28-cbf339c0e385","name_label":"sm.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a534c226-3cce-06b6-3a28-cbf339c0e385","$type":"role"},"OpaqueRef:a576f048-226e-b605-b15d-f388fd903210":{"uuid":"a576f048-226e-b605-b15d-f388fd903210","name_label":"sm.get_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a576f048-226e-b605-b15d-f388fd903210","$type":"role"},"OpaqueRef:676b455a-f9eb-78e3-a1ef-a1ea437f6110":{"uuid":"676b455a-f9eb-78e3-a1ef-a1ea437f6110","name_label":"sm.get_vendor","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:676b455a-f9eb-78e3-a1ef-a1ea437f6110","$type":"role"},"OpaqueRef:3d4411cf-b855-6140-b1cd-1c6b7a0ebedd":{"uuid":"3d4411cf-b855-6140-b1cd-1c6b7a0ebedd","name_label":"sm.get_copyright","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3d4411cf-b855-6140-b1cd-1c6b7a0ebedd","$type":"role"},"OpaqueRef:a0184446-8631-4833-3651-61ca4293ca60":{"uuid":"a0184446-8631-4833-3651-61ca4293ca60","name_label":"sm.get_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a0184446-8631-4833-3651-61ca4293ca60","$type":"role"},"OpaqueRef:b277f808-66e4-fd82-2300-bfae51e59679":{"uuid":"b277f808-66e4-fd82-2300-bfae51e59679","name_label":"sm.get_required_api_version","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b277f808-66e4-fd82-2300-bfae51e59679","$type":"role"},"OpaqueRef:babc2b36-7a11-3b3d-03da-fc3130f49a35":{"uuid":"babc2b36-7a11-3b3d-03da-fc3130f49a35","name_label":"sm.get_configuration","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:babc2b36-7a11-3b3d-03da-fc3130f49a35","$type":"role"},"OpaqueRef:2a3d6942-c2df-0472-5241-52530708b8c7":{"uuid":"2a3d6942-c2df-0472-5241-52530708b8c7","name_label":"sm.get_capabilities","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2a3d6942-c2df-0472-5241-52530708b8c7","$type":"role"},"OpaqueRef:7e23cac0-90ad-45ba-9a62-c7b6a6e4002c":{"uuid":"7e23cac0-90ad-45ba-9a62-c7b6a6e4002c","name_label":"sm.get_features","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7e23cac0-90ad-45ba-9a62-c7b6a6e4002c","$type":"role"},"OpaqueRef:b8f9b23f-65b1-75c0-289b-e6e2872ee81d":{"uuid":"b8f9b23f-65b1-75c0-289b-e6e2872ee81d","name_label":"sm.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b8f9b23f-65b1-75c0-289b-e6e2872ee81d","$type":"role"},"OpaqueRef:2adc8291-5288-6526-87a0-0b15ec4ca4fa":{"uuid":"2adc8291-5288-6526-87a0-0b15ec4ca4fa","name_label":"sm.get_driver_filename","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2adc8291-5288-6526-87a0-0b15ec4ca4fa","$type":"role"},"OpaqueRef:6fc9e87d-86a3-2cf4-dd26-017c20571a05":{"uuid":"6fc9e87d-86a3-2cf4-dd26-017c20571a05","name_label":"sm.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6fc9e87d-86a3-2cf4-dd26-017c20571a05","$type":"role"},"OpaqueRef:b0d0708d-79a0-7f33-2b39-4e2a59000bbf":{"uuid":"b0d0708d-79a0-7f33-2b39-4e2a59000bbf","name_label":"sm.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b0d0708d-79a0-7f33-2b39-4e2a59000bbf","$type":"role"},"OpaqueRef:4b284b33-faf7-ba98-7e68-6a53191fdb97":{"uuid":"4b284b33-faf7-ba98-7e68-6a53191fdb97","name_label":"sm.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4b284b33-faf7-ba98-7e68-6a53191fdb97","$type":"role"},"OpaqueRef:01844316-a78d-e6f9-a7b7-53a939235f5d":{"uuid":"01844316-a78d-e6f9-a7b7-53a939235f5d","name_label":"sm.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:01844316-a78d-e6f9-a7b7-53a939235f5d","$type":"role"},"OpaqueRef:b1d61197-b0bf-cb30-2120-627c956a97f7":{"uuid":"b1d61197-b0bf-cb30-2120-627c956a97f7","name_label":"sm.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b1d61197-b0bf-cb30-2120-627c956a97f7","$type":"role"},"OpaqueRef:74ef5702-8a42-a7a6-8951-a28ae3b64197":{"uuid":"74ef5702-8a42-a7a6-8951-a28ae3b64197","name_label":"sm.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:74ef5702-8a42-a7a6-8951-a28ae3b64197","$type":"role"},"OpaqueRef:ab2230c7-8d4b-357d-6a26-62f7c9b0bb27":{"uuid":"ab2230c7-8d4b-357d-6a26-62f7c9b0bb27","name_label":"sr.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab2230c7-8d4b-357d-6a26-62f7c9b0bb27","$type":"role"},"OpaqueRef:ce3646e1-704b-6b7e-f468-45a009bec12d":{"uuid":"ce3646e1-704b-6b7e-f468-45a009bec12d","name_label":"sr.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ce3646e1-704b-6b7e-f468-45a009bec12d","$type":"role"},"OpaqueRef:c911cfca-5100-8446-b631-2d6f3861350c":{"uuid":"c911cfca-5100-8446-b631-2d6f3861350c","name_label":"sr.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c911cfca-5100-8446-b631-2d6f3861350c","$type":"role"},"OpaqueRef:f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4":{"uuid":"f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4","name_label":"sr.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4","$type":"role"},"OpaqueRef:883d4710-6475-244f-cce7-d17282265fdc":{"uuid":"883d4710-6475-244f-cce7-d17282265fdc","name_label":"sr.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:883d4710-6475-244f-cce7-d17282265fdc","$type":"role"},"OpaqueRef:56a2f957-6b1b-7d8d-00f6-931d4574f63b":{"uuid":"56a2f957-6b1b-7d8d-00f6-931d4574f63b","name_label":"sr.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:56a2f957-6b1b-7d8d-00f6-931d4574f63b","$type":"role"},"OpaqueRef:bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f":{"uuid":"bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f","name_label":"sr.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f","$type":"role"},"OpaqueRef:ba6f9682-ea22-caf0-ea6a-cfad6774390d":{"uuid":"ba6f9682-ea22-caf0-ea6a-cfad6774390d","name_label":"sr.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ba6f9682-ea22-caf0-ea6a-cfad6774390d","$type":"role"},"OpaqueRef:04ac5338-b19b-6833-ed3c-b992d6ef8328":{"uuid":"04ac5338-b19b-6833-ed3c-b992d6ef8328","name_label":"sr.get_vdis","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:04ac5338-b19b-6833-ed3c-b992d6ef8328","$type":"role"},"OpaqueRef:917258fe-6427-e960-98e8-9f3bbd88bd22":{"uuid":"917258fe-6427-e960-98e8-9f3bbd88bd22","name_label":"sr.get_pbds","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:917258fe-6427-e960-98e8-9f3bbd88bd22","$type":"role"},"OpaqueRef:2de23583-b3f1-6e39-4bd9-4c7bc7afc977":{"uuid":"2de23583-b3f1-6e39-4bd9-4c7bc7afc977","name_label":"sr.get_virtual_allocation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2de23583-b3f1-6e39-4bd9-4c7bc7afc977","$type":"role"},"OpaqueRef:46c7e8d5-56f3-060f-2995-2d969d216c2b":{"uuid":"46c7e8d5-56f3-060f-2995-2d969d216c2b","name_label":"sr.get_physical_utilisation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:46c7e8d5-56f3-060f-2995-2d969d216c2b","$type":"role"},"OpaqueRef:06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5":{"uuid":"06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5","name_label":"sr.get_physical_size","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5","$type":"role"},"OpaqueRef:c2bc934e-8ece-de2e-3288-7ccbab1e257d":{"uuid":"c2bc934e-8ece-de2e-3288-7ccbab1e257d","name_label":"sr.get_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c2bc934e-8ece-de2e-3288-7ccbab1e257d","$type":"role"},"OpaqueRef:e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a":{"uuid":"e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a","name_label":"sr.get_content_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a","$type":"role"},"OpaqueRef:3b5deb71-ec32-2485-4913-089fa04f1ace":{"uuid":"3b5deb71-ec32-2485-4913-089fa04f1ace","name_label":"sr.get_shared","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3b5deb71-ec32-2485-4913-089fa04f1ace","$type":"role"},"OpaqueRef:c7b868fb-53dd-4ff6-9b83-fe096e910d82":{"uuid":"c7b868fb-53dd-4ff6-9b83-fe096e910d82","name_label":"sr.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c7b868fb-53dd-4ff6-9b83-fe096e910d82","$type":"role"},"OpaqueRef:3516a06e-5a67-7f1f-4c83-40b3d7e914f0":{"uuid":"3516a06e-5a67-7f1f-4c83-40b3d7e914f0","name_label":"sr.get_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3516a06e-5a67-7f1f-4c83-40b3d7e914f0","$type":"role"},"OpaqueRef:439dce99-b067-9c88-7a0a-06e581f8f502":{"uuid":"439dce99-b067-9c88-7a0a-06e581f8f502","name_label":"sr.get_sm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:439dce99-b067-9c88-7a0a-06e581f8f502","$type":"role"},"OpaqueRef:8e7a8bd9-9ac6-a612-477a-12c33c6af2d3":{"uuid":"8e7a8bd9-9ac6-a612-477a-12c33c6af2d3","name_label":"sr.get_blobs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8e7a8bd9-9ac6-a612-477a-12c33c6af2d3","$type":"role"},"OpaqueRef:2cc96f79-52aa-dafc-494e-5d04eb63b66e":{"uuid":"2cc96f79-52aa-dafc-494e-5d04eb63b66e","name_label":"sr.get_local_cache_enabled","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2cc96f79-52aa-dafc-494e-5d04eb63b66e","$type":"role"},"OpaqueRef:2966c4db-3b8e-7257-734f-0969cf20819d":{"uuid":"2966c4db-3b8e-7257-734f-0969cf20819d","name_label":"sr.get_introduced_by","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2966c4db-3b8e-7257-734f-0969cf20819d","$type":"role"},"OpaqueRef:f2ec9f37-10d9-7d1b-510a-4415578358ec":{"uuid":"f2ec9f37-10d9-7d1b-510a-4415578358ec","name_label":"sr.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f2ec9f37-10d9-7d1b-510a-4415578358ec","$type":"role"},"OpaqueRef:56fb3052-8b86-22ad-c7fc-b2526f97e6b7":{"uuid":"56fb3052-8b86-22ad-c7fc-b2526f97e6b7","name_label":"sr.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:56fb3052-8b86-22ad-c7fc-b2526f97e6b7","$type":"role"},"OpaqueRef:312ca834-68b2-6c0c-7608-9fa37ab92a80":{"uuid":"312ca834-68b2-6c0c-7608-9fa37ab92a80","name_label":"sr.add_to_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:312ca834-68b2-6c0c-7608-9fa37ab92a80","$type":"role"},"OpaqueRef:de6644f5-642f-de4c-0a6c-643305b2d412":{"uuid":"de6644f5-642f-de4c-0a6c-643305b2d412","name_label":"sr.add_to_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:de6644f5-642f-de4c-0a6c-643305b2d412","$type":"role"},"OpaqueRef:1e09548b-2543-cf4f-f3c4-5ccf24e7f34a":{"uuid":"1e09548b-2543-cf4f-f3c4-5ccf24e7f34a","name_label":"sr.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1e09548b-2543-cf4f-f3c4-5ccf24e7f34a","$type":"role"},"OpaqueRef:532b0c67-7dc7-8ea3-2e90-ed2db7b2a1db":{"uuid":"532b0c67-7dc7-8ea3-2e90-ed2db7b2a1db","name_label":"sr.remove_from_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:532b0c67-7dc7-8ea3-2e90-ed2db7b2a1db","$type":"role"},"OpaqueRef:b36dd591-9707-22a9-dd2f-f4ace0f16c2f":{"uuid":"b36dd591-9707-22a9-dd2f-f4ace0f16c2f","name_label":"sr.remove_from_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b36dd591-9707-22a9-dd2f-f4ace0f16c2f","$type":"role"},"OpaqueRef:73dcfb11-02cd-8963-408b-dad8c5e273f9":{"uuid":"73dcfb11-02cd-8963-408b-dad8c5e273f9","name_label":"sr.set_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:73dcfb11-02cd-8963-408b-dad8c5e273f9","$type":"role"},"OpaqueRef:4422e4c7-9256-2554-f5cd-20e747e332de":{"uuid":"4422e4c7-9256-2554-f5cd-20e747e332de","name_label":"sr.add_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4422e4c7-9256-2554-f5cd-20e747e332de","$type":"role"},"OpaqueRef:18dad7b9-c57e-c98d-7d17-f0bf1d7e06ab":{"uuid":"18dad7b9-c57e-c98d-7d17-f0bf1d7e06ab","name_label":"sr.remove_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:18dad7b9-c57e-c98d-7d17-f0bf1d7e06ab","$type":"role"},"OpaqueRef:b843bef9-a511-6d24-6f3c-35213ab63e72":{"uuid":"b843bef9-a511-6d24-6f3c-35213ab63e72","name_label":"sr.set_sm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b843bef9-a511-6d24-6f3c-35213ab63e72","$type":"role"},"OpaqueRef:99348363-3c41-3555-2ea6-69f9286ab01f":{"uuid":"99348363-3c41-3555-2ea6-69f9286ab01f","name_label":"sr.add_to_sm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:99348363-3c41-3555-2ea6-69f9286ab01f","$type":"role"},"OpaqueRef:2a640dcd-ecb7-7c13-f614-5ece445d6af6":{"uuid":"2a640dcd-ecb7-7c13-f614-5ece445d6af6","name_label":"sr.remove_from_sm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2a640dcd-ecb7-7c13-f614-5ece445d6af6","$type":"role"},"OpaqueRef:67ee9e01-bacd-05d3-a6f6-d7e36b2e3615":{"uuid":"67ee9e01-bacd-05d3-a6f6-d7e36b2e3615","name_label":"sr.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:67ee9e01-bacd-05d3-a6f6-d7e36b2e3615","$type":"role"},"OpaqueRef:0b3def91-9eba-d648-87f7-fd46891784ee":{"uuid":"0b3def91-9eba-d648-87f7-fd46891784ee","name_label":"sr.introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0b3def91-9eba-d648-87f7-fd46891784ee","$type":"role"},"OpaqueRef:3a5fc160-ae59-bc77-0753-e356a3ad9b90":{"uuid":"3a5fc160-ae59-bc77-0753-e356a3ad9b90","name_label":"sr.make","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3a5fc160-ae59-bc77-0753-e356a3ad9b90","$type":"role"},"OpaqueRef:e5c75e3c-d11e-b898-e9e7-330a9199bf1f":{"uuid":"e5c75e3c-d11e-b898-e9e7-330a9199bf1f","name_label":"sr.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e5c75e3c-d11e-b898-e9e7-330a9199bf1f","$type":"role"},"OpaqueRef:38ef0f15-9dd4-29bd-cee4-b90a4f40b781":{"uuid":"38ef0f15-9dd4-29bd-cee4-b90a4f40b781","name_label":"sr.forget","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:38ef0f15-9dd4-29bd-cee4-b90a4f40b781","$type":"role"},"OpaqueRef:6d1d191d-e4b5-6ea6-9fa1-77be26dac4b6":{"uuid":"6d1d191d-e4b5-6ea6-9fa1-77be26dac4b6","name_label":"sr.update","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d1d191d-e4b5-6ea6-9fa1-77be26dac4b6","$type":"role"},"OpaqueRef:412f975b-5a60-92d0-a171-2bedf499c0f5":{"uuid":"412f975b-5a60-92d0-a171-2bedf499c0f5","name_label":"sr.get_supported_types","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:412f975b-5a60-92d0-a171-2bedf499c0f5","$type":"role"},"OpaqueRef:4e5603db-37bc-eb71-1024-e2f12969924c":{"uuid":"4e5603db-37bc-eb71-1024-e2f12969924c","name_label":"sr.scan","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4e5603db-37bc-eb71-1024-e2f12969924c","$type":"role"},"OpaqueRef:2a010f2e-db5a-5674-cd2c-86c314edff3a":{"uuid":"2a010f2e-db5a-5674-cd2c-86c314edff3a","name_label":"sr.probe","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2a010f2e-db5a-5674-cd2c-86c314edff3a","$type":"role"},"OpaqueRef:c55b00c9-0dd4-cfa7-8c15-9f45566790eb":{"uuid":"c55b00c9-0dd4-cfa7-8c15-9f45566790eb","name_label":"sr.set_shared","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c55b00c9-0dd4-cfa7-8c15-9f45566790eb","$type":"role"},"OpaqueRef:1d31bdb6-108a-c58f-726e-698a3ae8a4c2":{"uuid":"1d31bdb6-108a-c58f-726e-698a3ae8a4c2","name_label":"sr.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1d31bdb6-108a-c58f-726e-698a3ae8a4c2","$type":"role"},"OpaqueRef:229e72e3-bb39-e68e-870a-66da28febf25":{"uuid":"229e72e3-bb39-e68e-870a-66da28febf25","name_label":"sr.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:229e72e3-bb39-e68e-870a-66da28febf25","$type":"role"},"OpaqueRef:a9e18770-38e2-e1a7-8ae0-f084cb86b223":{"uuid":"a9e18770-38e2-e1a7-8ae0-f084cb86b223","name_label":"sr.create_new_blob","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a9e18770-38e2-e1a7-8ae0-f084cb86b223","$type":"role"},"OpaqueRef:7488f812-0cd8-7253-6fee-f339b217611a":{"uuid":"7488f812-0cd8-7253-6fee-f339b217611a","name_label":"sr.set_physical_size","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7488f812-0cd8-7253-6fee-f339b217611a","$type":"role"},"OpaqueRef:7105e48b-21af-8085-53ef-cbba8e982ffa":{"uuid":"7105e48b-21af-8085-53ef-cbba8e982ffa","name_label":"sr.set_virtual_allocation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7105e48b-21af-8085-53ef-cbba8e982ffa","$type":"role"},"OpaqueRef:bc9320f4-99a1-bb52-5f0a-53b712382e92":{"uuid":"bc9320f4-99a1-bb52-5f0a-53b712382e92","name_label":"sr.set_physical_utilisation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bc9320f4-99a1-bb52-5f0a-53b712382e92","$type":"role"},"OpaqueRef:ca85f1e0-c38c-287e-8327-c07136a32bbd":{"uuid":"ca85f1e0-c38c-287e-8327-c07136a32bbd","name_label":"sr.assert_can_host_ha_statefile","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ca85f1e0-c38c-287e-8327-c07136a32bbd","$type":"role"},"OpaqueRef:d4103e70-a294-550e-2c8f-8cc136aaad6e":{"uuid":"d4103e70-a294-550e-2c8f-8cc136aaad6e","name_label":"sr.assert_supports_database_replication","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d4103e70-a294-550e-2c8f-8cc136aaad6e","$type":"role"},"OpaqueRef:dc80d07c-da36-8b15-91a4-92ca16f288bb":{"uuid":"dc80d07c-da36-8b15-91a4-92ca16f288bb","name_label":"sr.enable_database_replication","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dc80d07c-da36-8b15-91a4-92ca16f288bb","$type":"role"},"OpaqueRef:51051d7b-371a-7f10-d045-a050f70f2474":{"uuid":"51051d7b-371a-7f10-d045-a050f70f2474","name_label":"sr.disable_database_replication","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:51051d7b-371a-7f10-d045-a050f70f2474","$type":"role"},"OpaqueRef:4e914b35-ddeb-12b2-31fd-e2fbcbec010d":{"uuid":"4e914b35-ddeb-12b2-31fd-e2fbcbec010d","name_label":"sr.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4e914b35-ddeb-12b2-31fd-e2fbcbec010d","$type":"role"},"OpaqueRef:588d746c-9967-8e54-df7e-a825bc64f73a":{"uuid":"588d746c-9967-8e54-df7e-a825bc64f73a","name_label":"sr.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:588d746c-9967-8e54-df7e-a825bc64f73a","$type":"role"},"OpaqueRef:e9a7fba1-deec-3478-2098-26b97828c750":{"uuid":"e9a7fba1-deec-3478-2098-26b97828c750","name_label":"sr.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e9a7fba1-deec-3478-2098-26b97828c750","$type":"role"},"OpaqueRef:93dea749-bb50-7546-5ecb-90cfbf26165f":{"uuid":"93dea749-bb50-7546-5ecb-90cfbf26165f","name_label":"vdi.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93dea749-bb50-7546-5ecb-90cfbf26165f","$type":"role"},"OpaqueRef:b37bf5ec-05a4-e2bb-1586-d973d208a2f8":{"uuid":"b37bf5ec-05a4-e2bb-1586-d973d208a2f8","name_label":"vdi.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b37bf5ec-05a4-e2bb-1586-d973d208a2f8","$type":"role"},"OpaqueRef:9d51a9e7-b720-b88e-5240-256b52701685":{"uuid":"9d51a9e7-b720-b88e-5240-256b52701685","name_label":"vdi.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9d51a9e7-b720-b88e-5240-256b52701685","$type":"role"},"OpaqueRef:a00ac9c0-8960-1e84-c638-c9858dfa4101":{"uuid":"a00ac9c0-8960-1e84-c638-c9858dfa4101","name_label":"vdi.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a00ac9c0-8960-1e84-c638-c9858dfa4101","$type":"role"},"OpaqueRef:0c82bef6-ba72-0bee-b924-84feb84b2e77":{"uuid":"0c82bef6-ba72-0bee-b924-84feb84b2e77","name_label":"vdi.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0c82bef6-ba72-0bee-b924-84feb84b2e77","$type":"role"},"OpaqueRef:6753d0e3-8e17-9f9d-cb5f-9642c2b7685d":{"uuid":"6753d0e3-8e17-9f9d-cb5f-9642c2b7685d","name_label":"vdi.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6753d0e3-8e17-9f9d-cb5f-9642c2b7685d","$type":"role"},"OpaqueRef:d70b794c-05dc-77a5-b720-51a905de3f2b":{"uuid":"d70b794c-05dc-77a5-b720-51a905de3f2b","name_label":"vdi.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d70b794c-05dc-77a5-b720-51a905de3f2b","$type":"role"},"OpaqueRef:0462f07f-cd50-abd0-7965-0ec55f5a126b":{"uuid":"0462f07f-cd50-abd0-7965-0ec55f5a126b","name_label":"vdi.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0462f07f-cd50-abd0-7965-0ec55f5a126b","$type":"role"},"OpaqueRef:a28dd0cb-fcd5-33bd-7657-278e5f653471":{"uuid":"a28dd0cb-fcd5-33bd-7657-278e5f653471","name_label":"vdi.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a28dd0cb-fcd5-33bd-7657-278e5f653471","$type":"role"},"OpaqueRef:35767a4f-af9a-af62-5f51-ed250f684d25":{"uuid":"35767a4f-af9a-af62-5f51-ed250f684d25","name_label":"vdi.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:35767a4f-af9a-af62-5f51-ed250f684d25","$type":"role"},"OpaqueRef:2605b766-9cb9-cdb1-53e6-2431e711af44":{"uuid":"2605b766-9cb9-cdb1-53e6-2431e711af44","name_label":"vdi.get_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2605b766-9cb9-cdb1-53e6-2431e711af44","$type":"role"},"OpaqueRef:f5b86d13-b503-2c7a-83cc-b54896afb752":{"uuid":"f5b86d13-b503-2c7a-83cc-b54896afb752","name_label":"vdi.get_vbds","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f5b86d13-b503-2c7a-83cc-b54896afb752","$type":"role"},"OpaqueRef:266d1cf3-ea34-44ba-fc97-cf4cd876d7c8":{"uuid":"266d1cf3-ea34-44ba-fc97-cf4cd876d7c8","name_label":"vdi.get_crash_dumps","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:266d1cf3-ea34-44ba-fc97-cf4cd876d7c8","$type":"role"},"OpaqueRef:2cdb0f4e-685a-814d-03e5-19c4fbe5aa64":{"uuid":"2cdb0f4e-685a-814d-03e5-19c4fbe5aa64","name_label":"vdi.get_virtual_size","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2cdb0f4e-685a-814d-03e5-19c4fbe5aa64","$type":"role"},"OpaqueRef:a2f2b2b8-188f-f022-69bf-fa443d89bb58":{"uuid":"a2f2b2b8-188f-f022-69bf-fa443d89bb58","name_label":"vdi.get_physical_utilisation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a2f2b2b8-188f-f022-69bf-fa443d89bb58","$type":"role"},"OpaqueRef:a4c9dc80-0070-0067-a1d3-339b5081adc0":{"uuid":"a4c9dc80-0070-0067-a1d3-339b5081adc0","name_label":"vdi.get_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a4c9dc80-0070-0067-a1d3-339b5081adc0","$type":"role"},"OpaqueRef:f6184e4a-0be4-97e7-6db6-bced99fcceff":{"uuid":"f6184e4a-0be4-97e7-6db6-bced99fcceff","name_label":"vdi.get_sharable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f6184e4a-0be4-97e7-6db6-bced99fcceff","$type":"role"},"OpaqueRef:771f7157-33cd-a8e1-f5a7-ae23af63c750":{"uuid":"771f7157-33cd-a8e1-f5a7-ae23af63c750","name_label":"vdi.get_read_only","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:771f7157-33cd-a8e1-f5a7-ae23af63c750","$type":"role"},"OpaqueRef:7f545d78-e772-030f-2e95-7d3b998d3000":{"uuid":"7f545d78-e772-030f-2e95-7d3b998d3000","name_label":"vdi.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7f545d78-e772-030f-2e95-7d3b998d3000","$type":"role"},"OpaqueRef:b99da77a-522d-4bff-9013-ae981fceda83":{"uuid":"b99da77a-522d-4bff-9013-ae981fceda83","name_label":"vdi.get_storage_lock","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b99da77a-522d-4bff-9013-ae981fceda83","$type":"role"},"OpaqueRef:0a01091f-7913-54d3-94b5-3ef26f90b0f9":{"uuid":"0a01091f-7913-54d3-94b5-3ef26f90b0f9","name_label":"vdi.get_location","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0a01091f-7913-54d3-94b5-3ef26f90b0f9","$type":"role"},"OpaqueRef:dfc8a1f1-60c9-373b-c6a3-56c0712754a7":{"uuid":"dfc8a1f1-60c9-373b-c6a3-56c0712754a7","name_label":"vdi.get_managed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dfc8a1f1-60c9-373b-c6a3-56c0712754a7","$type":"role"},"OpaqueRef:e3e174f6-5c33-6385-bd9b-09213a73e701":{"uuid":"e3e174f6-5c33-6385-bd9b-09213a73e701","name_label":"vdi.get_missing","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e3e174f6-5c33-6385-bd9b-09213a73e701","$type":"role"},"OpaqueRef:f1fc3e4c-3f63-876c-f667-2c06a3321e7c":{"uuid":"f1fc3e4c-3f63-876c-f667-2c06a3321e7c","name_label":"vdi.get_parent","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f1fc3e4c-3f63-876c-f667-2c06a3321e7c","$type":"role"},"OpaqueRef:3230d646-65ff-59d1-0400-5f58231c0664":{"uuid":"3230d646-65ff-59d1-0400-5f58231c0664","name_label":"vdi.get_xenstore_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3230d646-65ff-59d1-0400-5f58231c0664","$type":"role"},"OpaqueRef:68130225-5eb6-b36c-43f5-c81acaba8b68":{"uuid":"68130225-5eb6-b36c-43f5-c81acaba8b68","name_label":"vdi.get_sm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:68130225-5eb6-b36c-43f5-c81acaba8b68","$type":"role"},"OpaqueRef:9ad29a74-1eec-8937-697a-ba3679e4f48d":{"uuid":"9ad29a74-1eec-8937-697a-ba3679e4f48d","name_label":"vdi.get_is_a_snapshot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9ad29a74-1eec-8937-697a-ba3679e4f48d","$type":"role"},"OpaqueRef:3fa0a161-a6ab-4adc-3749-2aab29e2b445":{"uuid":"3fa0a161-a6ab-4adc-3749-2aab29e2b445","name_label":"vdi.get_snapshot_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3fa0a161-a6ab-4adc-3749-2aab29e2b445","$type":"role"},"OpaqueRef:1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e":{"uuid":"1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e","name_label":"vdi.get_snapshots","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e","$type":"role"},"OpaqueRef:924d34e6-51df-0ef3-fdd7-065a11af80c4":{"uuid":"924d34e6-51df-0ef3-fdd7-065a11af80c4","name_label":"vdi.get_snapshot_time","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:924d34e6-51df-0ef3-fdd7-065a11af80c4","$type":"role"},"OpaqueRef:ccc6e989-a50d-3530-743f-d13e7f05e5dd":{"uuid":"ccc6e989-a50d-3530-743f-d13e7f05e5dd","name_label":"vdi.get_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ccc6e989-a50d-3530-743f-d13e7f05e5dd","$type":"role"},"OpaqueRef:bbdc09c5-8729-4aae-9945-66b292cf2aa1":{"uuid":"bbdc09c5-8729-4aae-9945-66b292cf2aa1","name_label":"vdi.get_allow_caching","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bbdc09c5-8729-4aae-9945-66b292cf2aa1","$type":"role"},"OpaqueRef:62c6badc-ea63-3832-3641-cd0eccca0304":{"uuid":"62c6badc-ea63-3832-3641-cd0eccca0304","name_label":"vdi.get_on_boot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:62c6badc-ea63-3832-3641-cd0eccca0304","$type":"role"},"OpaqueRef:18c1913b-2356-df02-11ce-ffd2da0e4170":{"uuid":"18c1913b-2356-df02-11ce-ffd2da0e4170","name_label":"vdi.get_metadata_of_pool","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:18c1913b-2356-df02-11ce-ffd2da0e4170","$type":"role"},"OpaqueRef:e522fa0c-7c50-cc59-c88d-0dedc9aac2aa":{"uuid":"e522fa0c-7c50-cc59-c88d-0dedc9aac2aa","name_label":"vdi.get_metadata_latest","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e522fa0c-7c50-cc59-c88d-0dedc9aac2aa","$type":"role"},"OpaqueRef:a5bca0b7-88eb-7892-b1ec-e328146be11a":{"uuid":"a5bca0b7-88eb-7892-b1ec-e328146be11a","name_label":"vdi.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a5bca0b7-88eb-7892-b1ec-e328146be11a","$type":"role"},"OpaqueRef:57003b7e-6b62-44ed-9efa-d02a2c73946b":{"uuid":"57003b7e-6b62-44ed-9efa-d02a2c73946b","name_label":"vdi.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:57003b7e-6b62-44ed-9efa-d02a2c73946b","$type":"role"},"OpaqueRef:58fd2438-7368-a4de-3b67-e5ad53708171":{"uuid":"58fd2438-7368-a4de-3b67-e5ad53708171","name_label":"vdi.add_to_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:58fd2438-7368-a4de-3b67-e5ad53708171","$type":"role"},"OpaqueRef:baf1360e-2dc9-be3d-08bf-252994e78ccd":{"uuid":"baf1360e-2dc9-be3d-08bf-252994e78ccd","name_label":"vdi.add_to_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:baf1360e-2dc9-be3d-08bf-252994e78ccd","$type":"role"},"OpaqueRef:8618ece2-3298-2490-19dc-2e951f388f1d":{"uuid":"8618ece2-3298-2490-19dc-2e951f388f1d","name_label":"vdi.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8618ece2-3298-2490-19dc-2e951f388f1d","$type":"role"},"OpaqueRef:acfb9201-52d6-3881-04f4-83ae8376300e":{"uuid":"acfb9201-52d6-3881-04f4-83ae8376300e","name_label":"vdi.remove_from_other_config/key:folder","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:acfb9201-52d6-3881-04f4-83ae8376300e","$type":"role"},"OpaqueRef:fa7a9290-f86a-2185-3c2e-9a4c5ad746ae":{"uuid":"fa7a9290-f86a-2185-3c2e-9a4c5ad746ae","name_label":"vdi.remove_from_other_config/key:xencenter.customfields.*","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fa7a9290-f86a-2185-3c2e-9a4c5ad746ae","$type":"role"},"OpaqueRef:092b2548-6da4-7838-9b3d-af0860032580":{"uuid":"092b2548-6da4-7838-9b3d-af0860032580","name_label":"vdi.set_xenstore_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:092b2548-6da4-7838-9b3d-af0860032580","$type":"role"},"OpaqueRef:4cfbb76c-adc2-c543-66fc-b1239cc2674d":{"uuid":"4cfbb76c-adc2-c543-66fc-b1239cc2674d","name_label":"vdi.add_to_xenstore_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4cfbb76c-adc2-c543-66fc-b1239cc2674d","$type":"role"},"OpaqueRef:a8137b60-e684-3a89-3c7d-70365d9f8465":{"uuid":"a8137b60-e684-3a89-3c7d-70365d9f8465","name_label":"vdi.remove_from_xenstore_data","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8137b60-e684-3a89-3c7d-70365d9f8465","$type":"role"},"OpaqueRef:edd8481c-3712-064c-e444-2a1f20a31aeb":{"uuid":"edd8481c-3712-064c-e444-2a1f20a31aeb","name_label":"vdi.set_sm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:edd8481c-3712-064c-e444-2a1f20a31aeb","$type":"role"},"OpaqueRef:566ee717-dd27-c672-e4ea-2f0796acd117":{"uuid":"566ee717-dd27-c672-e4ea-2f0796acd117","name_label":"vdi.add_to_sm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:566ee717-dd27-c672-e4ea-2f0796acd117","$type":"role"},"OpaqueRef:4df8d39a-3fda-a201-f792-c727dd2ffa60":{"uuid":"4df8d39a-3fda-a201-f792-c727dd2ffa60","name_label":"vdi.remove_from_sm_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4df8d39a-3fda-a201-f792-c727dd2ffa60","$type":"role"},"OpaqueRef:0f5f27b8-5098-237f-e2b5-14c9512fb0d6":{"uuid":"0f5f27b8-5098-237f-e2b5-14c9512fb0d6","name_label":"vdi.set_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f5f27b8-5098-237f-e2b5-14c9512fb0d6","$type":"role"},"OpaqueRef:360c10c1-5edb-2dba-9e8e-f1440e9a948c":{"uuid":"360c10c1-5edb-2dba-9e8e-f1440e9a948c","name_label":"vdi.add_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:360c10c1-5edb-2dba-9e8e-f1440e9a948c","$type":"role"},"OpaqueRef:4950f5c0-e772-3c03-61a0-6b00f291448d":{"uuid":"4950f5c0-e772-3c03-61a0-6b00f291448d","name_label":"vdi.remove_tags","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4950f5c0-e772-3c03-61a0-6b00f291448d","$type":"role"},"OpaqueRef:ad699ad2-4125-fa0c-2869-8b6640360731":{"uuid":"ad699ad2-4125-fa0c-2869-8b6640360731","name_label":"vdi.snapshot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ad699ad2-4125-fa0c-2869-8b6640360731","$type":"role"},"OpaqueRef:fa8993fb-524f-eb9a-641d-06b2099ecb82":{"uuid":"fa8993fb-524f-eb9a-641d-06b2099ecb82","name_label":"vdi.clone","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fa8993fb-524f-eb9a-641d-06b2099ecb82","$type":"role"},"OpaqueRef:a973885d-511e-de2a-00ef-18ed6acf3021":{"uuid":"a973885d-511e-de2a-00ef-18ed6acf3021","name_label":"vdi.resize","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a973885d-511e-de2a-00ef-18ed6acf3021","$type":"role"},"OpaqueRef:73e1bedc-0afc-64a1-ac4c-a58f118bbdc6":{"uuid":"73e1bedc-0afc-64a1-ac4c-a58f118bbdc6","name_label":"vdi.resize_online","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:73e1bedc-0afc-64a1-ac4c-a58f118bbdc6","$type":"role"},"OpaqueRef:efb93f2e-bf72-db7b-d36a-1be03c962cec":{"uuid":"efb93f2e-bf72-db7b-d36a-1be03c962cec","name_label":"vdi.introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:efb93f2e-bf72-db7b-d36a-1be03c962cec","$type":"role"},"OpaqueRef:0ec88acf-cbb0-d4d3-7c8b-f5f320e6f0ec":{"uuid":"0ec88acf-cbb0-d4d3-7c8b-f5f320e6f0ec","name_label":"vdi.pool_introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0ec88acf-cbb0-d4d3-7c8b-f5f320e6f0ec","$type":"role"},"OpaqueRef:e8872a7a-d9f2-2a9c-1e4e-ed2e94612f6b":{"uuid":"e8872a7a-d9f2-2a9c-1e4e-ed2e94612f6b","name_label":"vdi.db_introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e8872a7a-d9f2-2a9c-1e4e-ed2e94612f6b","$type":"role"},"OpaqueRef:19dd9241-f613-057e-d933-dfc254e20a6b":{"uuid":"19dd9241-f613-057e-d933-dfc254e20a6b","name_label":"vdi.db_forget","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:19dd9241-f613-057e-d933-dfc254e20a6b","$type":"role"},"OpaqueRef:5312dde5-afa4-fafe-a3a4-a9729b47b80b":{"uuid":"5312dde5-afa4-fafe-a3a4-a9729b47b80b","name_label":"vdi.update","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5312dde5-afa4-fafe-a3a4-a9729b47b80b","$type":"role"},"OpaqueRef:ad2b02d4-5928-4232-df0e-a7fdebd8fb62":{"uuid":"ad2b02d4-5928-4232-df0e-a7fdebd8fb62","name_label":"vdi.copy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ad2b02d4-5928-4232-df0e-a7fdebd8fb62","$type":"role"},"OpaqueRef:f2370df8-242f-0ca6-ec92-868200d68c34":{"uuid":"f2370df8-242f-0ca6-ec92-868200d68c34","name_label":"vdi.force_unlock","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f2370df8-242f-0ca6-ec92-868200d68c34","$type":"role"},"OpaqueRef:eaadf2fc-0fa1-892f-b20c-e3b8ac502e6b":{"uuid":"eaadf2fc-0fa1-892f-b20c-e3b8ac502e6b","name_label":"vdi.set_managed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eaadf2fc-0fa1-892f-b20c-e3b8ac502e6b","$type":"role"},"OpaqueRef:ed243ad4-497a-52e3-d46b-945f2e4156f3":{"uuid":"ed243ad4-497a-52e3-d46b-945f2e4156f3","name_label":"vdi.forget","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ed243ad4-497a-52e3-d46b-945f2e4156f3","$type":"role"},"OpaqueRef:4bb206e0-df39-3bb0-2402-e4d584e6861d":{"uuid":"4bb206e0-df39-3bb0-2402-e4d584e6861d","name_label":"vdi.set_sharable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4bb206e0-df39-3bb0-2402-e4d584e6861d","$type":"role"},"OpaqueRef:ef6fd636-89c1-1e1f-157f-284e8a450324":{"uuid":"ef6fd636-89c1-1e1f-157f-284e8a450324","name_label":"vdi.set_read_only","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ef6fd636-89c1-1e1f-157f-284e8a450324","$type":"role"},"OpaqueRef:5ff8b980-e213-e1f0-dbda-b5abf2bbe72f":{"uuid":"5ff8b980-e213-e1f0-dbda-b5abf2bbe72f","name_label":"vdi.set_missing","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5ff8b980-e213-e1f0-dbda-b5abf2bbe72f","$type":"role"},"OpaqueRef:c7734155-0a75-ac54-6f7c-74a8da933455":{"uuid":"c7734155-0a75-ac54-6f7c-74a8da933455","name_label":"vdi.set_virtual_size","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c7734155-0a75-ac54-6f7c-74a8da933455","$type":"role"},"OpaqueRef:eadc7ba0-7efe-5e4c-7b78-482519be7522":{"uuid":"eadc7ba0-7efe-5e4c-7b78-482519be7522","name_label":"vdi.set_physical_utilisation","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eadc7ba0-7efe-5e4c-7b78-482519be7522","$type":"role"},"OpaqueRef:25927722-f11f-2805-9006-8fa441b22745":{"uuid":"25927722-f11f-2805-9006-8fa441b22745","name_label":"vdi.set_is_a_snapshot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:25927722-f11f-2805-9006-8fa441b22745","$type":"role"},"OpaqueRef:804810ef-bdde-04af-addf-31ac6e8eb8ff":{"uuid":"804810ef-bdde-04af-addf-31ac6e8eb8ff","name_label":"vdi.set_snapshot_of","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:804810ef-bdde-04af-addf-31ac6e8eb8ff","$type":"role"},"OpaqueRef:f8d1620b-4d3b-ed60-af3d-6a13a59d65e4":{"uuid":"f8d1620b-4d3b-ed60-af3d-6a13a59d65e4","name_label":"vdi.set_snapshot_time","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f8d1620b-4d3b-ed60-af3d-6a13a59d65e4","$type":"role"},"OpaqueRef:325bbd68-d003-fcb2-bfa5-3745d5c7d4ef":{"uuid":"325bbd68-d003-fcb2-bfa5-3745d5c7d4ef","name_label":"vdi.set_metadata_of_pool","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:325bbd68-d003-fcb2-bfa5-3745d5c7d4ef","$type":"role"},"OpaqueRef:f5b632a4-7a1a-576c-e9cc-0ba84cf1071b":{"uuid":"f5b632a4-7a1a-576c-e9cc-0ba84cf1071b","name_label":"vdi.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f5b632a4-7a1a-576c-e9cc-0ba84cf1071b","$type":"role"},"OpaqueRef:8b3775f3-de8a-7191-05be-d652c36aa494":{"uuid":"8b3775f3-de8a-7191-05be-d652c36aa494","name_label":"vdi.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8b3775f3-de8a-7191-05be-d652c36aa494","$type":"role"},"OpaqueRef:fae90cea-ef53-bc8b-93d3-c0c48384feff":{"uuid":"fae90cea-ef53-bc8b-93d3-c0c48384feff","name_label":"vdi.generate_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fae90cea-ef53-bc8b-93d3-c0c48384feff","$type":"role"},"OpaqueRef:6e3cc91d-fe57-6857-c385-343d09c1a113":{"uuid":"6e3cc91d-fe57-6857-c385-343d09c1a113","name_label":"vdi.set_on_boot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6e3cc91d-fe57-6857-c385-343d09c1a113","$type":"role"},"OpaqueRef:710cfeb3-2a8d-27ed-c208-78f2db5f79a8":{"uuid":"710cfeb3-2a8d-27ed-c208-78f2db5f79a8","name_label":"vdi.set_allow_caching","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:710cfeb3-2a8d-27ed-c208-78f2db5f79a8","$type":"role"},"OpaqueRef:0552455f-5aa0-3217-1818-9c0729fe8d6f":{"uuid":"0552455f-5aa0-3217-1818-9c0729fe8d6f","name_label":"vdi.open_database","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0552455f-5aa0-3217-1818-9c0729fe8d6f","$type":"role"},"OpaqueRef:06c9a83e-f5d7-801c-cef9-f564eada350a":{"uuid":"06c9a83e-f5d7-801c-cef9-f564eada350a","name_label":"vdi.checksum","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:06c9a83e-f5d7-801c-cef9-f564eada350a","$type":"role"},"OpaqueRef:3acba506-ce1a-b39b-b637-3731b50880e9":{"uuid":"3acba506-ce1a-b39b-b637-3731b50880e9","name_label":"vdi.read_database_pool_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3acba506-ce1a-b39b-b637-3731b50880e9","$type":"role"},"OpaqueRef:8570df6d-9f81-8bc6-00ff-4c6c1f84def6":{"uuid":"8570df6d-9f81-8bc6-00ff-4c6c1f84def6","name_label":"vdi.pool_migrate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8570df6d-9f81-8bc6-00ff-4c6c1f84def6","$type":"role"},"OpaqueRef:4894cd8b-7d71-407e-2852-1b7f4aa166cf":{"uuid":"4894cd8b-7d71-407e-2852-1b7f4aa166cf","name_label":"vdi.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4894cd8b-7d71-407e-2852-1b7f4aa166cf","$type":"role"},"OpaqueRef:311d925a-6070-271d-a724-0948552a654f":{"uuid":"311d925a-6070-271d-a724-0948552a654f","name_label":"vdi.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:311d925a-6070-271d-a724-0948552a654f","$type":"role"},"OpaqueRef:44d764dd-95db-e4d9-4cf7-1250f3ca601d":{"uuid":"44d764dd-95db-e4d9-4cf7-1250f3ca601d","name_label":"vdi.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:44d764dd-95db-e4d9-4cf7-1250f3ca601d","$type":"role"},"OpaqueRef:937b2b79-813a-a286-cbeb-da09e3cf4c90":{"uuid":"937b2b79-813a-a286-cbeb-da09e3cf4c90","name_label":"vbd.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:937b2b79-813a-a286-cbeb-da09e3cf4c90","$type":"role"},"OpaqueRef:44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a":{"uuid":"44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a","name_label":"vbd.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a","$type":"role"},"OpaqueRef:ab3a2fc2-a70b-9122-8c6c-a51f7c11f438":{"uuid":"ab3a2fc2-a70b-9122-8c6c-a51f7c11f438","name_label":"vbd.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab3a2fc2-a70b-9122-8c6c-a51f7c11f438","$type":"role"},"OpaqueRef:18c32fa8-b18f-6a28-5b40-12f9077d7661":{"uuid":"18c32fa8-b18f-6a28-5b40-12f9077d7661","name_label":"vbd.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:18c32fa8-b18f-6a28-5b40-12f9077d7661","$type":"role"},"OpaqueRef:92967fef-88ab-15e4-f16c-9f042b3191f4":{"uuid":"92967fef-88ab-15e4-f16c-9f042b3191f4","name_label":"vbd.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:92967fef-88ab-15e4-f16c-9f042b3191f4","$type":"role"},"OpaqueRef:a3f5b9a0-e36f-41d8-65dc-8f7bd095293b":{"uuid":"a3f5b9a0-e36f-41d8-65dc-8f7bd095293b","name_label":"vbd.get_allowed_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a3f5b9a0-e36f-41d8-65dc-8f7bd095293b","$type":"role"},"OpaqueRef:9986f58f-773c-c701-6b97-7e99b0135124":{"uuid":"9986f58f-773c-c701-6b97-7e99b0135124","name_label":"vbd.get_current_operations","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9986f58f-773c-c701-6b97-7e99b0135124","$type":"role"},"OpaqueRef:d450902b-de9f-7867-c98c-f912e6a80cce":{"uuid":"d450902b-de9f-7867-c98c-f912e6a80cce","name_label":"vbd.get_vm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d450902b-de9f-7867-c98c-f912e6a80cce","$type":"role"},"OpaqueRef:7936813a-24d4-e749-f89a-dec7286a0b99":{"uuid":"7936813a-24d4-e749-f89a-dec7286a0b99","name_label":"vbd.get_vdi","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7936813a-24d4-e749-f89a-dec7286a0b99","$type":"role"},"OpaqueRef:81239256-3acb-c6e7-b689-9eb4e54c9956":{"uuid":"81239256-3acb-c6e7-b689-9eb4e54c9956","name_label":"vbd.get_device","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:81239256-3acb-c6e7-b689-9eb4e54c9956","$type":"role"},"OpaqueRef:745095db-fdd8-7025-f9b3-839b0fa846f9":{"uuid":"745095db-fdd8-7025-f9b3-839b0fa846f9","name_label":"vbd.get_userdevice","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:745095db-fdd8-7025-f9b3-839b0fa846f9","$type":"role"},"OpaqueRef:7187f8da-4c69-cc67-9718-1f98b825c1ea":{"uuid":"7187f8da-4c69-cc67-9718-1f98b825c1ea","name_label":"vbd.get_bootable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7187f8da-4c69-cc67-9718-1f98b825c1ea","$type":"role"},"OpaqueRef:601664bc-64ea-312f-6bc1-543ca1a0177c":{"uuid":"601664bc-64ea-312f-6bc1-543ca1a0177c","name_label":"vbd.get_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:601664bc-64ea-312f-6bc1-543ca1a0177c","$type":"role"},"OpaqueRef:729d8740-7096-6a5c-49dc-6c4cec96500f":{"uuid":"729d8740-7096-6a5c-49dc-6c4cec96500f","name_label":"vbd.get_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:729d8740-7096-6a5c-49dc-6c4cec96500f","$type":"role"},"OpaqueRef:d4ab22c9-f134-2607-284a-56381333719b":{"uuid":"d4ab22c9-f134-2607-284a-56381333719b","name_label":"vbd.get_unpluggable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d4ab22c9-f134-2607-284a-56381333719b","$type":"role"},"OpaqueRef:2a06d13d-ff22-2dc7-98a6-a97c7c723481":{"uuid":"2a06d13d-ff22-2dc7-98a6-a97c7c723481","name_label":"vbd.get_storage_lock","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2a06d13d-ff22-2dc7-98a6-a97c7c723481","$type":"role"},"OpaqueRef:a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44":{"uuid":"a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44","name_label":"vbd.get_empty","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44","$type":"role"},"OpaqueRef:a14d9994-ac84-07cd-e0c3-621d7c92f0aa":{"uuid":"a14d9994-ac84-07cd-e0c3-621d7c92f0aa","name_label":"vbd.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a14d9994-ac84-07cd-e0c3-621d7c92f0aa","$type":"role"},"OpaqueRef:56bc2594-ff11-2fa7-8f46-18178bd1010e":{"uuid":"56bc2594-ff11-2fa7-8f46-18178bd1010e","name_label":"vbd.get_currently_attached","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:56bc2594-ff11-2fa7-8f46-18178bd1010e","$type":"role"},"OpaqueRef:396bfd0b-b63b-449b-75e0-f4998ed9ea1f":{"uuid":"396bfd0b-b63b-449b-75e0-f4998ed9ea1f","name_label":"vbd.get_status_code","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:396bfd0b-b63b-449b-75e0-f4998ed9ea1f","$type":"role"},"OpaqueRef:7a90825c-43d6-122c-0805-408ff98a5064":{"uuid":"7a90825c-43d6-122c-0805-408ff98a5064","name_label":"vbd.get_status_detail","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a90825c-43d6-122c-0805-408ff98a5064","$type":"role"},"OpaqueRef:af48eae9-9c88-9a3d-e57a-46250c33abf8":{"uuid":"af48eae9-9c88-9a3d-e57a-46250c33abf8","name_label":"vbd.get_runtime_properties","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:af48eae9-9c88-9a3d-e57a-46250c33abf8","$type":"role"},"OpaqueRef:174af546-476b-1579-44ef-07346dbbe4b1":{"uuid":"174af546-476b-1579-44ef-07346dbbe4b1","name_label":"vbd.get_qos_algorithm_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:174af546-476b-1579-44ef-07346dbbe4b1","$type":"role"},"OpaqueRef:2aa40daa-f640-4198-a8b2-20fdfd44947f":{"uuid":"2aa40daa-f640-4198-a8b2-20fdfd44947f","name_label":"vbd.get_qos_algorithm_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2aa40daa-f640-4198-a8b2-20fdfd44947f","$type":"role"},"OpaqueRef:7555a731-bf5e-2494-cf68-90a0d7594b06":{"uuid":"7555a731-bf5e-2494-cf68-90a0d7594b06","name_label":"vbd.get_qos_supported_algorithms","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7555a731-bf5e-2494-cf68-90a0d7594b06","$type":"role"},"OpaqueRef:c3ae01b1-a370-4ec3-d91e-4d8533a89f86":{"uuid":"c3ae01b1-a370-4ec3-d91e-4d8533a89f86","name_label":"vbd.get_metrics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c3ae01b1-a370-4ec3-d91e-4d8533a89f86","$type":"role"},"OpaqueRef:edac34a6-33d6-77bb-28f4-420479c713a2":{"uuid":"edac34a6-33d6-77bb-28f4-420479c713a2","name_label":"vbd.set_userdevice","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:edac34a6-33d6-77bb-28f4-420479c713a2","$type":"role"},"OpaqueRef:4210bb3f-296a-873d-f592-9a9cf531b0b2":{"uuid":"4210bb3f-296a-873d-f592-9a9cf531b0b2","name_label":"vbd.set_bootable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4210bb3f-296a-873d-f592-9a9cf531b0b2","$type":"role"},"OpaqueRef:bcd53d79-34a2-71df-29e1-c7e72dfca15e":{"uuid":"bcd53d79-34a2-71df-29e1-c7e72dfca15e","name_label":"vbd.set_mode","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bcd53d79-34a2-71df-29e1-c7e72dfca15e","$type":"role"},"OpaqueRef:7762becd-462e-6753-2b38-d70dc62e2c29":{"uuid":"7762becd-462e-6753-2b38-d70dc62e2c29","name_label":"vbd.set_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7762becd-462e-6753-2b38-d70dc62e2c29","$type":"role"},"OpaqueRef:3f2d95ef-f35a-fb7f-ac83-1e31d28eb587":{"uuid":"3f2d95ef-f35a-fb7f-ac83-1e31d28eb587","name_label":"vbd.set_unpluggable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3f2d95ef-f35a-fb7f-ac83-1e31d28eb587","$type":"role"},"OpaqueRef:79e264ba-b809-161d-44cf-f628b44dea1a":{"uuid":"79e264ba-b809-161d-44cf-f628b44dea1a","name_label":"vbd.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:79e264ba-b809-161d-44cf-f628b44dea1a","$type":"role"},"OpaqueRef:2d6b6f99-d4ff-f561-6f39-1a2361b296b5":{"uuid":"2d6b6f99-d4ff-f561-6f39-1a2361b296b5","name_label":"vbd.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2d6b6f99-d4ff-f561-6f39-1a2361b296b5","$type":"role"},"OpaqueRef:57b4a7f4-2b31-e7dc-3698-cfc7ab53d6ec":{"uuid":"57b4a7f4-2b31-e7dc-3698-cfc7ab53d6ec","name_label":"vbd.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:57b4a7f4-2b31-e7dc-3698-cfc7ab53d6ec","$type":"role"},"OpaqueRef:b6e74e20-a86a-c58b-67e6-8d481d0309cc":{"uuid":"b6e74e20-a86a-c58b-67e6-8d481d0309cc","name_label":"vbd.set_qos_algorithm_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b6e74e20-a86a-c58b-67e6-8d481d0309cc","$type":"role"},"OpaqueRef:0d2542ab-7612-5824-4c0b-a77676fe1df9":{"uuid":"0d2542ab-7612-5824-4c0b-a77676fe1df9","name_label":"vbd.set_qos_algorithm_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0d2542ab-7612-5824-4c0b-a77676fe1df9","$type":"role"},"OpaqueRef:eb56bf07-27a0-6d21-b864-90d65355a7c6":{"uuid":"eb56bf07-27a0-6d21-b864-90d65355a7c6","name_label":"vbd.add_to_qos_algorithm_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eb56bf07-27a0-6d21-b864-90d65355a7c6","$type":"role"},"OpaqueRef:a9077c51-15e4-6c48-46d6-b37841c7edf4":{"uuid":"a9077c51-15e4-6c48-46d6-b37841c7edf4","name_label":"vbd.remove_from_qos_algorithm_params","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a9077c51-15e4-6c48-46d6-b37841c7edf4","$type":"role"},"OpaqueRef:7b14057e-435b-da4a-f335-5710072124bb":{"uuid":"7b14057e-435b-da4a-f335-5710072124bb","name_label":"vbd.eject","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7b14057e-435b-da4a-f335-5710072124bb","$type":"role"},"OpaqueRef:a35e33f5-26cf-7f6f-7bee-2e69c34448f0":{"uuid":"a35e33f5-26cf-7f6f-7bee-2e69c34448f0","name_label":"vbd.insert","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a35e33f5-26cf-7f6f-7bee-2e69c34448f0","$type":"role"},"OpaqueRef:d5c12717-98ae-ea62-287b-ae5de38e2c4b":{"uuid":"d5c12717-98ae-ea62-287b-ae5de38e2c4b","name_label":"vbd.plug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d5c12717-98ae-ea62-287b-ae5de38e2c4b","$type":"role"},"OpaqueRef:b7b71954-9351-702b-765d-1e3757e2da15":{"uuid":"b7b71954-9351-702b-765d-1e3757e2da15","name_label":"vbd.unplug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b7b71954-9351-702b-765d-1e3757e2da15","$type":"role"},"OpaqueRef:9b1c0f58-1625-a13d-413a-5260b57607ca":{"uuid":"9b1c0f58-1625-a13d-413a-5260b57607ca","name_label":"vbd.unplug_force","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9b1c0f58-1625-a13d-413a-5260b57607ca","$type":"role"},"OpaqueRef:ad0c4088-5db2-3676-22ca-b679662173da":{"uuid":"ad0c4088-5db2-3676-22ca-b679662173da","name_label":"vbd.unplug_force_no_safety_check","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ad0c4088-5db2-3676-22ca-b679662173da","$type":"role"},"OpaqueRef:d83d3500-e310-848d-ba03-1601caced032":{"uuid":"d83d3500-e310-848d-ba03-1601caced032","name_label":"vbd.assert_attachable","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d83d3500-e310-848d-ba03-1601caced032","$type":"role"},"OpaqueRef:fe5d5a1a-b9ae-a0f4-2d61-50416f161d60":{"uuid":"fe5d5a1a-b9ae-a0f4-2d61-50416f161d60","name_label":"vbd.pause","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fe5d5a1a-b9ae-a0f4-2d61-50416f161d60","$type":"role"},"OpaqueRef:a95d21fa-7e04-1468-b0dc-27d81e39c09c":{"uuid":"a95d21fa-7e04-1468-b0dc-27d81e39c09c","name_label":"vbd.unpause","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a95d21fa-7e04-1468-b0dc-27d81e39c09c","$type":"role"},"OpaqueRef:37f9a250-fd67-56db-e2c1-7f7c7abfd9fb":{"uuid":"37f9a250-fd67-56db-e2c1-7f7c7abfd9fb","name_label":"vbd.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:37f9a250-fd67-56db-e2c1-7f7c7abfd9fb","$type":"role"},"OpaqueRef:a5ac4a15-20df-40aa-1d01-c668e8746d7b":{"uuid":"a5ac4a15-20df-40aa-1d01-c668e8746d7b","name_label":"vbd.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a5ac4a15-20df-40aa-1d01-c668e8746d7b","$type":"role"},"OpaqueRef:93340db9-eacc-0e12-9151-854745d49cf7":{"uuid":"93340db9-eacc-0e12-9151-854745d49cf7","name_label":"vbd.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93340db9-eacc-0e12-9151-854745d49cf7","$type":"role"},"OpaqueRef:9dd43118-a078-1317-8a87-83ebed088133":{"uuid":"9dd43118-a078-1317-8a87-83ebed088133","name_label":"vbd_metrics.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9dd43118-a078-1317-8a87-83ebed088133","$type":"role"},"OpaqueRef:63b9ae45-0e59-c1e6-d3dd-f596860071a2":{"uuid":"63b9ae45-0e59-c1e6-d3dd-f596860071a2","name_label":"vbd_metrics.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:63b9ae45-0e59-c1e6-d3dd-f596860071a2","$type":"role"},"OpaqueRef:67af93c7-dfb9-98ce-ccbf-80fb7e828e27":{"uuid":"67af93c7-dfb9-98ce-ccbf-80fb7e828e27","name_label":"vbd_metrics.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:67af93c7-dfb9-98ce-ccbf-80fb7e828e27","$type":"role"},"OpaqueRef:23af0178-71be-1c09-5f09-4eeb59279dec":{"uuid":"23af0178-71be-1c09-5f09-4eeb59279dec","name_label":"vbd_metrics.get_io_read_kbs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:23af0178-71be-1c09-5f09-4eeb59279dec","$type":"role"},"OpaqueRef:738acc9f-a221-a9c7-c008-4f324a609677":{"uuid":"738acc9f-a221-a9c7-c008-4f324a609677","name_label":"vbd_metrics.get_io_write_kbs","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:738acc9f-a221-a9c7-c008-4f324a609677","$type":"role"},"OpaqueRef:6467bf45-4441-2fb7-299d-da6dc598310b":{"uuid":"6467bf45-4441-2fb7-299d-da6dc598310b","name_label":"vbd_metrics.get_last_updated","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6467bf45-4441-2fb7-299d-da6dc598310b","$type":"role"},"OpaqueRef:5cd9ce80-b26e-54b1-0dfb-07431f9fde11":{"uuid":"5cd9ce80-b26e-54b1-0dfb-07431f9fde11","name_label":"vbd_metrics.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5cd9ce80-b26e-54b1-0dfb-07431f9fde11","$type":"role"},"OpaqueRef:ef373d6d-ccef-defc-69de-d76a06ec27ff":{"uuid":"ef373d6d-ccef-defc-69de-d76a06ec27ff","name_label":"vbd_metrics.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ef373d6d-ccef-defc-69de-d76a06ec27ff","$type":"role"},"OpaqueRef:dd9035db-7349-697a-84aa-6aeef6601c43":{"uuid":"dd9035db-7349-697a-84aa-6aeef6601c43","name_label":"vbd_metrics.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dd9035db-7349-697a-84aa-6aeef6601c43","$type":"role"},"OpaqueRef:a1f5ef8e-8116-2ead-ce75-4ff9cdeb6fbe":{"uuid":"a1f5ef8e-8116-2ead-ce75-4ff9cdeb6fbe","name_label":"vbd_metrics.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a1f5ef8e-8116-2ead-ce75-4ff9cdeb6fbe","$type":"role"},"OpaqueRef:c614ec0d-cd31-33ba-21b3-43a6c498d0fc":{"uuid":"c614ec0d-cd31-33ba-21b3-43a6c498d0fc","name_label":"vbd_metrics.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c614ec0d-cd31-33ba-21b3-43a6c498d0fc","$type":"role"},"OpaqueRef:34e576e5-27b1-46b3-bf30-25a663835fec":{"uuid":"34e576e5-27b1-46b3-bf30-25a663835fec","name_label":"vbd_metrics.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:34e576e5-27b1-46b3-bf30-25a663835fec","$type":"role"},"OpaqueRef:0620c7fe-5acd-626f-cd9d-79997b854a2d":{"uuid":"0620c7fe-5acd-626f-cd9d-79997b854a2d","name_label":"vbd_metrics.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0620c7fe-5acd-626f-cd9d-79997b854a2d","$type":"role"},"OpaqueRef:f6607652-9394-52ba-ced3-f360b1257e6f":{"uuid":"f6607652-9394-52ba-ced3-f360b1257e6f","name_label":"pbd.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f6607652-9394-52ba-ced3-f360b1257e6f","$type":"role"},"OpaqueRef:5d76223e-2db4-b433-f8c2-cb2a5d864efa":{"uuid":"5d76223e-2db4-b433-f8c2-cb2a5d864efa","name_label":"pbd.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5d76223e-2db4-b433-f8c2-cb2a5d864efa","$type":"role"},"OpaqueRef:9b8f4aa3-bfc2-83c8-3667-cd99d8a752ef":{"uuid":"9b8f4aa3-bfc2-83c8-3667-cd99d8a752ef","name_label":"pbd.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9b8f4aa3-bfc2-83c8-3667-cd99d8a752ef","$type":"role"},"OpaqueRef:071234dc-bb28-960b-bb7c-ee4ece319f5a":{"uuid":"071234dc-bb28-960b-bb7c-ee4ece319f5a","name_label":"pbd.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:071234dc-bb28-960b-bb7c-ee4ece319f5a","$type":"role"},"OpaqueRef:27378730-81dd-d327-639d-17495c264bc0":{"uuid":"27378730-81dd-d327-639d-17495c264bc0","name_label":"pbd.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:27378730-81dd-d327-639d-17495c264bc0","$type":"role"},"OpaqueRef:f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103":{"uuid":"f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103","name_label":"pbd.get_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103","$type":"role"},"OpaqueRef:4d21470f-106f-4e87-5109-1054f40a15e1":{"uuid":"4d21470f-106f-4e87-5109-1054f40a15e1","name_label":"pbd.get_sr","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4d21470f-106f-4e87-5109-1054f40a15e1","$type":"role"},"OpaqueRef:8cbe8380-7d8b-e296-35f5-7941ad540728":{"uuid":"8cbe8380-7d8b-e296-35f5-7941ad540728","name_label":"pbd.get_device_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8cbe8380-7d8b-e296-35f5-7941ad540728","$type":"role"},"OpaqueRef:26a2c50f-a17d-dea1-7046-e09d4e4beb2d":{"uuid":"26a2c50f-a17d-dea1-7046-e09d4e4beb2d","name_label":"pbd.get_currently_attached","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:26a2c50f-a17d-dea1-7046-e09d4e4beb2d","$type":"role"},"OpaqueRef:95d99f45-12d3-b0d4-5b95-3cf4e910c7c1":{"uuid":"95d99f45-12d3-b0d4-5b95-3cf4e910c7c1","name_label":"pbd.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:95d99f45-12d3-b0d4-5b95-3cf4e910c7c1","$type":"role"},"OpaqueRef:42d39347-68df-86c9-065c-6f95e1a28c1c":{"uuid":"42d39347-68df-86c9-065c-6f95e1a28c1c","name_label":"pbd.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:42d39347-68df-86c9-065c-6f95e1a28c1c","$type":"role"},"OpaqueRef:a92bae06-cfdf-6655-38c6-2c24b0da778d":{"uuid":"a92bae06-cfdf-6655-38c6-2c24b0da778d","name_label":"pbd.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a92bae06-cfdf-6655-38c6-2c24b0da778d","$type":"role"},"OpaqueRef:874f163d-dd0a-fa0f-0df5-166597eff5bc":{"uuid":"874f163d-dd0a-fa0f-0df5-166597eff5bc","name_label":"pbd.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:874f163d-dd0a-fa0f-0df5-166597eff5bc","$type":"role"},"OpaqueRef:ee185dea-ea4d-e49e-ad96-4072c0a84f58":{"uuid":"ee185dea-ea4d-e49e-ad96-4072c0a84f58","name_label":"pbd.plug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ee185dea-ea4d-e49e-ad96-4072c0a84f58","$type":"role"},"OpaqueRef:123a5e0e-5e9c-ba9d-0b27-c2c84732402e":{"uuid":"123a5e0e-5e9c-ba9d-0b27-c2c84732402e","name_label":"pbd.unplug","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:123a5e0e-5e9c-ba9d-0b27-c2c84732402e","$type":"role"},"OpaqueRef:52fd6dc6-5ca6-9fa3-a47e-5650412665ab":{"uuid":"52fd6dc6-5ca6-9fa3-a47e-5650412665ab","name_label":"pbd.set_device_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:52fd6dc6-5ca6-9fa3-a47e-5650412665ab","$type":"role"},"OpaqueRef:a954a18e-5251-f3c7-1bcc-0a7e3e532d13":{"uuid":"a954a18e-5251-f3c7-1bcc-0a7e3e532d13","name_label":"pbd.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a954a18e-5251-f3c7-1bcc-0a7e3e532d13","$type":"role"},"OpaqueRef:b2bf107a-c001-a3f5-0f11-d9b414b636e9":{"uuid":"b2bf107a-c001-a3f5-0f11-d9b414b636e9","name_label":"pbd.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b2bf107a-c001-a3f5-0f11-d9b414b636e9","$type":"role"},"OpaqueRef:d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d":{"uuid":"d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d","name_label":"pbd.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d","$type":"role"},"OpaqueRef:cfaaa17f-391d-2412-ccd2-afab25ccab6d":{"uuid":"cfaaa17f-391d-2412-ccd2-afab25ccab6d","name_label":"crashdump.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cfaaa17f-391d-2412-ccd2-afab25ccab6d","$type":"role"},"OpaqueRef:bd37900a-e6b0-90df-dabf-871311560070":{"uuid":"bd37900a-e6b0-90df-dabf-871311560070","name_label":"crashdump.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bd37900a-e6b0-90df-dabf-871311560070","$type":"role"},"OpaqueRef:d237f558-5bcd-610e-0028-4fe71d0ac595":{"uuid":"d237f558-5bcd-610e-0028-4fe71d0ac595","name_label":"crashdump.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d237f558-5bcd-610e-0028-4fe71d0ac595","$type":"role"},"OpaqueRef:703ca7dc-8dcc-6df0-2473-7337caa1c17b":{"uuid":"703ca7dc-8dcc-6df0-2473-7337caa1c17b","name_label":"crashdump.get_vm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:703ca7dc-8dcc-6df0-2473-7337caa1c17b","$type":"role"},"OpaqueRef:bac565df-939b-c536-dfc4-35ea64950ad1":{"uuid":"bac565df-939b-c536-dfc4-35ea64950ad1","name_label":"crashdump.get_vdi","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bac565df-939b-c536-dfc4-35ea64950ad1","$type":"role"},"OpaqueRef:d19eb620-7260-c930-6729-682529ab1d12":{"uuid":"d19eb620-7260-c930-6729-682529ab1d12","name_label":"crashdump.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d19eb620-7260-c930-6729-682529ab1d12","$type":"role"},"OpaqueRef:e03eac42-56e7-135f-0afb-e5987f110687":{"uuid":"e03eac42-56e7-135f-0afb-e5987f110687","name_label":"crashdump.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e03eac42-56e7-135f-0afb-e5987f110687","$type":"role"},"OpaqueRef:342236c6-8d38-20f7-1e06-1a44e75513b0":{"uuid":"342236c6-8d38-20f7-1e06-1a44e75513b0","name_label":"crashdump.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:342236c6-8d38-20f7-1e06-1a44e75513b0","$type":"role"},"OpaqueRef:368457f6-8b86-9492-2566-cfbf72c8598d":{"uuid":"368457f6-8b86-9492-2566-cfbf72c8598d","name_label":"crashdump.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:368457f6-8b86-9492-2566-cfbf72c8598d","$type":"role"},"OpaqueRef:009b40cc-5ac3-4e74-251b-439ae33a1237":{"uuid":"009b40cc-5ac3-4e74-251b-439ae33a1237","name_label":"crashdump.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:009b40cc-5ac3-4e74-251b-439ae33a1237","$type":"role"},"OpaqueRef:1ee62327-b580-693a-9635-78d27050c1b6":{"uuid":"1ee62327-b580-693a-9635-78d27050c1b6","name_label":"crashdump.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1ee62327-b580-693a-9635-78d27050c1b6","$type":"role"},"OpaqueRef:657ed104-a6cf-c0f5-1813-48f0bb17da4e":{"uuid":"657ed104-a6cf-c0f5-1813-48f0bb17da4e","name_label":"crashdump.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:657ed104-a6cf-c0f5-1813-48f0bb17da4e","$type":"role"},"OpaqueRef:01a743e5-a3b5-f318-7228-4ce8fbcc6662":{"uuid":"01a743e5-a3b5-f318-7228-4ce8fbcc6662","name_label":"crashdump.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:01a743e5-a3b5-f318-7228-4ce8fbcc6662","$type":"role"},"OpaqueRef:019dc5fb-c3ad-90db-7e97-160d3fcf1970":{"uuid":"019dc5fb-c3ad-90db-7e97-160d3fcf1970","name_label":"vtpm.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:019dc5fb-c3ad-90db-7e97-160d3fcf1970","$type":"role"},"OpaqueRef:70276941-c1fc-66ff-97b9-6a2f0e4417c2":{"uuid":"70276941-c1fc-66ff-97b9-6a2f0e4417c2","name_label":"vtpm.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:70276941-c1fc-66ff-97b9-6a2f0e4417c2","$type":"role"},"OpaqueRef:fe6b159e-02e4-9220-217f-f7530ac32810":{"uuid":"fe6b159e-02e4-9220-217f-f7530ac32810","name_label":"vtpm.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fe6b159e-02e4-9220-217f-f7530ac32810","$type":"role"},"OpaqueRef:765c29b0-1ca4-48cd-1222-4eeb6655a7d7":{"uuid":"765c29b0-1ca4-48cd-1222-4eeb6655a7d7","name_label":"vtpm.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:765c29b0-1ca4-48cd-1222-4eeb6655a7d7","$type":"role"},"OpaqueRef:36d74e5e-a510-68e7-45b1-ad0a7c5f47c1":{"uuid":"36d74e5e-a510-68e7-45b1-ad0a7c5f47c1","name_label":"vtpm.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:36d74e5e-a510-68e7-45b1-ad0a7c5f47c1","$type":"role"},"OpaqueRef:6d0a3227-0550-f146-7aac-34259c56d99e":{"uuid":"6d0a3227-0550-f146-7aac-34259c56d99e","name_label":"vtpm.get_vm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d0a3227-0550-f146-7aac-34259c56d99e","$type":"role"},"OpaqueRef:86989975-8b09-5f82-f068-64f59f226978":{"uuid":"86989975-8b09-5f82-f068-64f59f226978","name_label":"vtpm.get_backend","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:86989975-8b09-5f82-f068-64f59f226978","$type":"role"},"OpaqueRef:dfa26a90-9ce7-1147-7ddb-d79dd9d9c105":{"uuid":"dfa26a90-9ce7-1147-7ddb-d79dd9d9c105","name_label":"console.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dfa26a90-9ce7-1147-7ddb-d79dd9d9c105","$type":"role"},"OpaqueRef:e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd":{"uuid":"e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd","name_label":"console.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd","$type":"role"},"OpaqueRef:9c4cc775-613a-fa97-0912-aa44311671b9":{"uuid":"9c4cc775-613a-fa97-0912-aa44311671b9","name_label":"console.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9c4cc775-613a-fa97-0912-aa44311671b9","$type":"role"},"OpaqueRef:ebb0b010-c619-1fcf-2519-a386d57161bf":{"uuid":"ebb0b010-c619-1fcf-2519-a386d57161bf","name_label":"console.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ebb0b010-c619-1fcf-2519-a386d57161bf","$type":"role"},"OpaqueRef:96a4dd40-ee88-1987-3286-55c08bf66316":{"uuid":"96a4dd40-ee88-1987-3286-55c08bf66316","name_label":"console.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:96a4dd40-ee88-1987-3286-55c08bf66316","$type":"role"},"OpaqueRef:de4a5cb5-c8d9-3319-92bb-a0a0f560067e":{"uuid":"de4a5cb5-c8d9-3319-92bb-a0a0f560067e","name_label":"console.get_protocol","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:de4a5cb5-c8d9-3319-92bb-a0a0f560067e","$type":"role"},"OpaqueRef:9c0443d4-538d-c2ef-af03-55f9e033f6b1":{"uuid":"9c0443d4-538d-c2ef-af03-55f9e033f6b1","name_label":"console.get_location","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9c0443d4-538d-c2ef-af03-55f9e033f6b1","$type":"role"},"OpaqueRef:0e630687-91e7-fb14-32b8-d7813d4dd5ac":{"uuid":"0e630687-91e7-fb14-32b8-d7813d4dd5ac","name_label":"console.get_vm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e630687-91e7-fb14-32b8-d7813d4dd5ac","$type":"role"},"OpaqueRef:024ec9db-e7f1-de4f-23be-6c3e46f8a797":{"uuid":"024ec9db-e7f1-de4f-23be-6c3e46f8a797","name_label":"console.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:024ec9db-e7f1-de4f-23be-6c3e46f8a797","$type":"role"},"OpaqueRef:106a8006-8e4d-000a-e85e-5077503d891d":{"uuid":"106a8006-8e4d-000a-e85e-5077503d891d","name_label":"console.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:106a8006-8e4d-000a-e85e-5077503d891d","$type":"role"},"OpaqueRef:4eb027f0-0349-99d5-83ee-4d00063e9a62":{"uuid":"4eb027f0-0349-99d5-83ee-4d00063e9a62","name_label":"console.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4eb027f0-0349-99d5-83ee-4d00063e9a62","$type":"role"},"OpaqueRef:51a0170c-4df8-88fb-62ad-a85085484604":{"uuid":"51a0170c-4df8-88fb-62ad-a85085484604","name_label":"console.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:51a0170c-4df8-88fb-62ad-a85085484604","$type":"role"},"OpaqueRef:dd56ce4e-8a5f-0776-a0ba-682b1dda3b84":{"uuid":"dd56ce4e-8a5f-0776-a0ba-682b1dda3b84","name_label":"console.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dd56ce4e-8a5f-0776-a0ba-682b1dda3b84","$type":"role"},"OpaqueRef:795faa64-e21d-c19b-a175-7c28d7af1935":{"uuid":"795faa64-e21d-c19b-a175-7c28d7af1935","name_label":"console.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:795faa64-e21d-c19b-a175-7c28d7af1935","$type":"role"},"OpaqueRef:eba43944-c9fd-a3ca-d20c-d39c09923eeb":{"uuid":"eba43944-c9fd-a3ca-d20c-d39c09923eeb","name_label":"console.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eba43944-c9fd-a3ca-d20c-d39c09923eeb","$type":"role"},"OpaqueRef:ea191445-996a-32e0-33dc-2819c43657a2":{"uuid":"ea191445-996a-32e0-33dc-2819c43657a2","name_label":"user.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ea191445-996a-32e0-33dc-2819c43657a2","$type":"role"},"OpaqueRef:5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a":{"uuid":"5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a","name_label":"user.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a","$type":"role"},"OpaqueRef:0b1b29bc-15ee-ad07-a49e-05b26da793fd":{"uuid":"0b1b29bc-15ee-ad07-a49e-05b26da793fd","name_label":"user.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0b1b29bc-15ee-ad07-a49e-05b26da793fd","$type":"role"},"OpaqueRef:df390945-b067-324c-a4e7-93d944ae540a":{"uuid":"df390945-b067-324c-a4e7-93d944ae540a","name_label":"user.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df390945-b067-324c-a4e7-93d944ae540a","$type":"role"},"OpaqueRef:eb7f2515-ab28-d9d3-17eb-285a28545189":{"uuid":"eb7f2515-ab28-d9d3-17eb-285a28545189","name_label":"user.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eb7f2515-ab28-d9d3-17eb-285a28545189","$type":"role"},"OpaqueRef:621bc530-1dd3-dea9-a82e-498f86b5664a":{"uuid":"621bc530-1dd3-dea9-a82e-498f86b5664a","name_label":"user.get_short_name","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:621bc530-1dd3-dea9-a82e-498f86b5664a","$type":"role"},"OpaqueRef:2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b":{"uuid":"2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b","name_label":"user.get_fullname","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b","$type":"role"},"OpaqueRef:206c900b-40cd-e97c-ef4d-1f20a3d67e1e":{"uuid":"206c900b-40cd-e97c-ef4d-1f20a3d67e1e","name_label":"user.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:206c900b-40cd-e97c-ef4d-1f20a3d67e1e","$type":"role"},"OpaqueRef:97f7185a-3f7e-35b3-6beb-23f6864d0ee9":{"uuid":"97f7185a-3f7e-35b3-6beb-23f6864d0ee9","name_label":"user.set_fullname","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:97f7185a-3f7e-35b3-6beb-23f6864d0ee9","$type":"role"},"OpaqueRef:30371c5e-cea9-fcfc-8f29-290889088518":{"uuid":"30371c5e-cea9-fcfc-8f29-290889088518","name_label":"user.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:30371c5e-cea9-fcfc-8f29-290889088518","$type":"role"},"OpaqueRef:02848936-8270-e502-2b53-971110e9f649":{"uuid":"02848936-8270-e502-2b53-971110e9f649","name_label":"user.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:02848936-8270-e502-2b53-971110e9f649","$type":"role"},"OpaqueRef:b86716ce-dbef-07b5-ebbe-34563541ef98":{"uuid":"b86716ce-dbef-07b5-ebbe-34563541ef98","name_label":"user.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b86716ce-dbef-07b5-ebbe-34563541ef98","$type":"role"},"OpaqueRef:9366d110-4c7a-e528-014c-8cfd1bc735bc":{"uuid":"9366d110-4c7a-e528-014c-8cfd1bc735bc","name_label":"blob.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9366d110-4c7a-e528-014c-8cfd1bc735bc","$type":"role"},"OpaqueRef:2d30096c-51e6-487a-b95f-5d3b49e0922d":{"uuid":"2d30096c-51e6-487a-b95f-5d3b49e0922d","name_label":"blob.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2d30096c-51e6-487a-b95f-5d3b49e0922d","$type":"role"},"OpaqueRef:29ccccc0-78ea-f639-1829-f5579b6cc3fb":{"uuid":"29ccccc0-78ea-f639-1829-f5579b6cc3fb","name_label":"blob.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:29ccccc0-78ea-f639-1829-f5579b6cc3fb","$type":"role"},"OpaqueRef:6979048a-de08-4e61-feb6-b5ad950b3b88":{"uuid":"6979048a-de08-4e61-feb6-b5ad950b3b88","name_label":"blob.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6979048a-de08-4e61-feb6-b5ad950b3b88","$type":"role"},"OpaqueRef:17c2c3d4-6525-49ca-28c3-efc752410e1c":{"uuid":"17c2c3d4-6525-49ca-28c3-efc752410e1c","name_label":"blob.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:17c2c3d4-6525-49ca-28c3-efc752410e1c","$type":"role"},"OpaqueRef:8a499ea6-d0bc-3218-e271-c5507d8f8a96":{"uuid":"8a499ea6-d0bc-3218-e271-c5507d8f8a96","name_label":"blob.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8a499ea6-d0bc-3218-e271-c5507d8f8a96","$type":"role"},"OpaqueRef:1ec637f9-4157-5b26-dabb-31f3331c2959":{"uuid":"1ec637f9-4157-5b26-dabb-31f3331c2959","name_label":"blob.get_size","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1ec637f9-4157-5b26-dabb-31f3331c2959","$type":"role"},"OpaqueRef:b57b8c50-f2af-943e-a514-8340681aaaeb":{"uuid":"b57b8c50-f2af-943e-a514-8340681aaaeb","name_label":"blob.get_public","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b57b8c50-f2af-943e-a514-8340681aaaeb","$type":"role"},"OpaqueRef:c99755dd-030f-7f04-48b2-eadf25ecd92d":{"uuid":"c99755dd-030f-7f04-48b2-eadf25ecd92d","name_label":"blob.get_last_updated","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c99755dd-030f-7f04-48b2-eadf25ecd92d","$type":"role"},"OpaqueRef:dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f":{"uuid":"dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f","name_label":"blob.get_mime_type","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f","$type":"role"},"OpaqueRef:0e8a9f8c-2c46-818a-9854-04bb6b36a68e":{"uuid":"0e8a9f8c-2c46-818a-9854-04bb6b36a68e","name_label":"blob.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e8a9f8c-2c46-818a-9854-04bb6b36a68e","$type":"role"},"OpaqueRef:6915b3af-9d93-fe55-1e79-9859a603c794":{"uuid":"6915b3af-9d93-fe55-1e79-9859a603c794","name_label":"blob.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6915b3af-9d93-fe55-1e79-9859a603c794","$type":"role"},"OpaqueRef:25f8fc67-b562-e946-71e8-30b169bf70b7":{"uuid":"25f8fc67-b562-e946-71e8-30b169bf70b7","name_label":"blob.set_public","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:25f8fc67-b562-e946-71e8-30b169bf70b7","$type":"role"},"OpaqueRef:d69e42f6-4afe-4a38-1794-1a7c062123a3":{"uuid":"d69e42f6-4afe-4a38-1794-1a7c062123a3","name_label":"blob.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d69e42f6-4afe-4a38-1794-1a7c062123a3","$type":"role"},"OpaqueRef:78840af4-8196-e8dc-af0d-08b1a2218dad":{"uuid":"78840af4-8196-e8dc-af0d-08b1a2218dad","name_label":"blob.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:78840af4-8196-e8dc-af0d-08b1a2218dad","$type":"role"},"OpaqueRef:8fb7479c-f838-e29b-4693-651f31819f9f":{"uuid":"8fb7479c-f838-e29b-4693-651f31819f9f","name_label":"blob.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8fb7479c-f838-e29b-4693-651f31819f9f","$type":"role"},"OpaqueRef:5a960d88-c30e-3aaf-f79c-e58803f4e544":{"uuid":"5a960d88-c30e-3aaf-f79c-e58803f4e544","name_label":"blob.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5a960d88-c30e-3aaf-f79c-e58803f4e544","$type":"role"},"OpaqueRef:3561ecde-dba0-fb56-62b0-1a6101833aca":{"uuid":"3561ecde-dba0-fb56-62b0-1a6101833aca","name_label":"blob.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3561ecde-dba0-fb56-62b0-1a6101833aca","$type":"role"},"OpaqueRef:c59f2b3d-5a13-6c04-0021-0cdbec0121f8":{"uuid":"c59f2b3d-5a13-6c04-0021-0cdbec0121f8","name_label":"message.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c59f2b3d-5a13-6c04-0021-0cdbec0121f8","$type":"role"},"OpaqueRef:114b6761-fa8c-3aaf-3bc3-757d86de8918":{"uuid":"114b6761-fa8c-3aaf-3bc3-757d86de8918","name_label":"message.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:114b6761-fa8c-3aaf-3bc3-757d86de8918","$type":"role"},"OpaqueRef:dc25c20a-f553-ff0d-b49c-ddb96d8e2e61":{"uuid":"dc25c20a-f553-ff0d-b49c-ddb96d8e2e61","name_label":"message.get","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dc25c20a-f553-ff0d-b49c-ddb96d8e2e61","$type":"role"},"OpaqueRef:795b843c-c4cd-3690-a224-e36e687ef07c":{"uuid":"795b843c-c4cd-3690-a224-e36e687ef07c","name_label":"message.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:795b843c-c4cd-3690-a224-e36e687ef07c","$type":"role"},"OpaqueRef:43572bd0-288c-6290-e52d-9f12253f662e":{"uuid":"43572bd0-288c-6290-e52d-9f12253f662e","name_label":"message.get_since","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:43572bd0-288c-6290-e52d-9f12253f662e","$type":"role"},"OpaqueRef:e73ccdb9-0003-bcaa-8576-fd587f6abd36":{"uuid":"e73ccdb9-0003-bcaa-8576-fd587f6abd36","name_label":"message.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e73ccdb9-0003-bcaa-8576-fd587f6abd36","$type":"role"},"OpaqueRef:4a4afbc3-0b2c-f5f2-6967-6afb51cf903e":{"uuid":"4a4afbc3-0b2c-f5f2-6967-6afb51cf903e","name_label":"message.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a4afbc3-0b2c-f5f2-6967-6afb51cf903e","$type":"role"},"OpaqueRef:f52942a8-5ac5-2c56-c42a-79d9c3ec2c82":{"uuid":"f52942a8-5ac5-2c56-c42a-79d9c3ec2c82","name_label":"message.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f52942a8-5ac5-2c56-c42a-79d9c3ec2c82","$type":"role"},"OpaqueRef:6113a2d6-4c9c-48a9-dc31-1c7b590e3cde":{"uuid":"6113a2d6-4c9c-48a9-dc31-1c7b590e3cde","name_label":"message.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6113a2d6-4c9c-48a9-dc31-1c7b590e3cde","$type":"role"},"OpaqueRef:adec2482-2774-2665-2682-d9ce334ff4a1":{"uuid":"adec2482-2774-2665-2682-d9ce334ff4a1","name_label":"secret.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:adec2482-2774-2665-2682-d9ce334ff4a1","$type":"role"},"OpaqueRef:9412d249-3172-24d8-cf7e-9622564daaf9":{"uuid":"9412d249-3172-24d8-cf7e-9622564daaf9","name_label":"secret.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9412d249-3172-24d8-cf7e-9622564daaf9","$type":"role"},"OpaqueRef:87005ee6-c593-016c-5cb6-63ced4df556c":{"uuid":"87005ee6-c593-016c-5cb6-63ced4df556c","name_label":"secret.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:87005ee6-c593-016c-5cb6-63ced4df556c","$type":"role"},"OpaqueRef:5c423f17-499e-76f6-a0a4-a8e96a9a5841":{"uuid":"5c423f17-499e-76f6-a0a4-a8e96a9a5841","name_label":"secret.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5c423f17-499e-76f6-a0a4-a8e96a9a5841","$type":"role"},"OpaqueRef:e701b23d-c37b-d583-890b-48657c03f5ad":{"uuid":"e701b23d-c37b-d583-890b-48657c03f5ad","name_label":"secret.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e701b23d-c37b-d583-890b-48657c03f5ad","$type":"role"},"OpaqueRef:90c6fb36-5d02-460e-f78c-c02828defb95":{"uuid":"90c6fb36-5d02-460e-f78c-c02828defb95","name_label":"secret.get_value","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:90c6fb36-5d02-460e-f78c-c02828defb95","$type":"role"},"OpaqueRef:3fdd414e-97c6-a7a2-c297-871f5f05ee3d":{"uuid":"3fdd414e-97c6-a7a2-c297-871f5f05ee3d","name_label":"secret.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3fdd414e-97c6-a7a2-c297-871f5f05ee3d","$type":"role"},"OpaqueRef:8a92fce7-31af-97f1-33ba-74802d8522c3":{"uuid":"8a92fce7-31af-97f1-33ba-74802d8522c3","name_label":"secret.set_value","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8a92fce7-31af-97f1-33ba-74802d8522c3","$type":"role"},"OpaqueRef:3c291172-5a99-70dc-e6d1-d3637fe01b96":{"uuid":"3c291172-5a99-70dc-e6d1-d3637fe01b96","name_label":"secret.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3c291172-5a99-70dc-e6d1-d3637fe01b96","$type":"role"},"OpaqueRef:69ee95df-aa85-fa8f-a8fe-f906098d50fa":{"uuid":"69ee95df-aa85-fa8f-a8fe-f906098d50fa","name_label":"secret.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:69ee95df-aa85-fa8f-a8fe-f906098d50fa","$type":"role"},"OpaqueRef:72145853-81ce-a12c-1606-14ff7432a7b6":{"uuid":"72145853-81ce-a12c-1606-14ff7432a7b6","name_label":"secret.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:72145853-81ce-a12c-1606-14ff7432a7b6","$type":"role"},"OpaqueRef:4b96faeb-b163-23ce-bfb1-65338654423f":{"uuid":"4b96faeb-b163-23ce-bfb1-65338654423f","name_label":"secret.introduce","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4b96faeb-b163-23ce-bfb1-65338654423f","$type":"role"},"OpaqueRef:46eb0ae8-1c31-3d27-55a0-3e001e6a8cb0":{"uuid":"46eb0ae8-1c31-3d27-55a0-3e001e6a8cb0","name_label":"secret.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:46eb0ae8-1c31-3d27-55a0-3e001e6a8cb0","$type":"role"},"OpaqueRef:c34920a2-588f-0628-3f8b-b3c5bab3ac4f":{"uuid":"c34920a2-588f-0628-3f8b-b3c5bab3ac4f","name_label":"secret.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c34920a2-588f-0628-3f8b-b3c5bab3ac4f","$type":"role"},"OpaqueRef:1d1d659f-b7df-54db-8b2f-a3fd62a67933":{"uuid":"1d1d659f-b7df-54db-8b2f-a3fd62a67933","name_label":"secret.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1d1d659f-b7df-54db-8b2f-a3fd62a67933","$type":"role"},"OpaqueRef:a00e1125-aa6c-2a9d-2cef-3000e5357ced":{"uuid":"a00e1125-aa6c-2a9d-2cef-3000e5357ced","name_label":"tunnel.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a00e1125-aa6c-2a9d-2cef-3000e5357ced","$type":"role"},"OpaqueRef:973b22d8-c0b0-834c-ff70-30cdd424d1d8":{"uuid":"973b22d8-c0b0-834c-ff70-30cdd424d1d8","name_label":"tunnel.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:973b22d8-c0b0-834c-ff70-30cdd424d1d8","$type":"role"},"OpaqueRef:207a7572-567a-8900-16f4-41f9c102bdeb":{"uuid":"207a7572-567a-8900-16f4-41f9c102bdeb","name_label":"tunnel.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:207a7572-567a-8900-16f4-41f9c102bdeb","$type":"role"},"OpaqueRef:50dc8d5b-e46e-8903-e94d-bffbbf1bccc1":{"uuid":"50dc8d5b-e46e-8903-e94d-bffbbf1bccc1","name_label":"tunnel.get_access_pif","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:50dc8d5b-e46e-8903-e94d-bffbbf1bccc1","$type":"role"},"OpaqueRef:3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d":{"uuid":"3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d","name_label":"tunnel.get_transport_pif","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d","$type":"role"},"OpaqueRef:1388c828-c07f-9391-a1fb-9cd0653117fa":{"uuid":"1388c828-c07f-9391-a1fb-9cd0653117fa","name_label":"tunnel.get_status","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1388c828-c07f-9391-a1fb-9cd0653117fa","$type":"role"},"OpaqueRef:49010e45-7adc-7912-16a1-45bbcd359177":{"uuid":"49010e45-7adc-7912-16a1-45bbcd359177","name_label":"tunnel.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:49010e45-7adc-7912-16a1-45bbcd359177","$type":"role"},"OpaqueRef:d64e8bad-1a24-1fd3-93a5-b0252099f97f":{"uuid":"d64e8bad-1a24-1fd3-93a5-b0252099f97f","name_label":"tunnel.set_status","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d64e8bad-1a24-1fd3-93a5-b0252099f97f","$type":"role"},"OpaqueRef:3b10ba6c-e973-5bf2-5bcc-d429490f88cc":{"uuid":"3b10ba6c-e973-5bf2-5bcc-d429490f88cc","name_label":"tunnel.add_to_status","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3b10ba6c-e973-5bf2-5bcc-d429490f88cc","$type":"role"},"OpaqueRef:c03fd8c1-e01f-2726-7c57-d9e8066f042f":{"uuid":"c03fd8c1-e01f-2726-7c57-d9e8066f042f","name_label":"tunnel.remove_from_status","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c03fd8c1-e01f-2726-7c57-d9e8066f042f","$type":"role"},"OpaqueRef:8aa70081-ff29-9795-004d-e48584816546":{"uuid":"8aa70081-ff29-9795-004d-e48584816546","name_label":"tunnel.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8aa70081-ff29-9795-004d-e48584816546","$type":"role"},"OpaqueRef:0dec93de-3a81-1b68-64b1-5a9fdfa5848c":{"uuid":"0dec93de-3a81-1b68-64b1-5a9fdfa5848c","name_label":"tunnel.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0dec93de-3a81-1b68-64b1-5a9fdfa5848c","$type":"role"},"OpaqueRef:bc40708d-314f-472f-4f71-da37b0f5440e":{"uuid":"bc40708d-314f-472f-4f71-da37b0f5440e","name_label":"tunnel.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bc40708d-314f-472f-4f71-da37b0f5440e","$type":"role"},"OpaqueRef:6c7256c1-dd50-fa5b-8dc2-4fe5858d1c08":{"uuid":"6c7256c1-dd50-fa5b-8dc2-4fe5858d1c08","name_label":"tunnel.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6c7256c1-dd50-fa5b-8dc2-4fe5858d1c08","$type":"role"},"OpaqueRef:98773f37-621e-5c05-3c3a-f7f7f034a76e":{"uuid":"98773f37-621e-5c05-3c3a-f7f7f034a76e","name_label":"tunnel.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:98773f37-621e-5c05-3c3a-f7f7f034a76e","$type":"role"},"OpaqueRef:7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c":{"uuid":"7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c","name_label":"tunnel.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c","$type":"role"},"OpaqueRef:43c79c0a-2a5c-0e0a-b10b-5c0847fd888c":{"uuid":"43c79c0a-2a5c-0e0a-b10b-5c0847fd888c","name_label":"tunnel.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:43c79c0a-2a5c-0e0a-b10b-5c0847fd888c","$type":"role"},"OpaqueRef:bf225b3b-1e37-86dd-5922-a04df826dba6":{"uuid":"bf225b3b-1e37-86dd-5922-a04df826dba6","name_label":"tunnel.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bf225b3b-1e37-86dd-5922-a04df826dba6","$type":"role"},"OpaqueRef:8274ff2e-c513-43d6-2a55-ce0057861430":{"uuid":"8274ff2e-c513-43d6-2a55-ce0057861430","name_label":"pci.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8274ff2e-c513-43d6-2a55-ce0057861430","$type":"role"},"OpaqueRef:0bdee192-3fa7-09af-d3ee-12cd06ebb91b":{"uuid":"0bdee192-3fa7-09af-d3ee-12cd06ebb91b","name_label":"pci.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0bdee192-3fa7-09af-d3ee-12cd06ebb91b","$type":"role"},"OpaqueRef:4b3fbad1-a1b2-ccc9-813c-9d6151a9d974":{"uuid":"4b3fbad1-a1b2-ccc9-813c-9d6151a9d974","name_label":"pci.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4b3fbad1-a1b2-ccc9-813c-9d6151a9d974","$type":"role"},"OpaqueRef:d6219686-f85d-245e-c292-f2dab9cf156f":{"uuid":"d6219686-f85d-245e-c292-f2dab9cf156f","name_label":"pci.get_class_name","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6219686-f85d-245e-c292-f2dab9cf156f","$type":"role"},"OpaqueRef:cbb0830e-78d6-6db4-b10e-cd1acbffcfd8":{"uuid":"cbb0830e-78d6-6db4-b10e-cd1acbffcfd8","name_label":"pci.get_vendor_name","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cbb0830e-78d6-6db4-b10e-cd1acbffcfd8","$type":"role"},"OpaqueRef:137475bc-66cc-23b5-4a93-1101da98b268":{"uuid":"137475bc-66cc-23b5-4a93-1101da98b268","name_label":"pci.get_device_name","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:137475bc-66cc-23b5-4a93-1101da98b268","$type":"role"},"OpaqueRef:435947cd-5662-5e05-3da1-cb3cb6937448":{"uuid":"435947cd-5662-5e05-3da1-cb3cb6937448","name_label":"pci.get_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:435947cd-5662-5e05-3da1-cb3cb6937448","$type":"role"},"OpaqueRef:1411712a-41d3-d353-5e92-b977076e1b05":{"uuid":"1411712a-41d3-d353-5e92-b977076e1b05","name_label":"pci.get_pci_id","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1411712a-41d3-d353-5e92-b977076e1b05","$type":"role"},"OpaqueRef:2c6424c8-06c4-34fa-1ef3-6f04e5805e1c":{"uuid":"2c6424c8-06c4-34fa-1ef3-6f04e5805e1c","name_label":"pci.get_dependencies","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2c6424c8-06c4-34fa-1ef3-6f04e5805e1c","$type":"role"},"OpaqueRef:7588002d-2ebc-c944-8f10-c5c452efb97a":{"uuid":"7588002d-2ebc-c944-8f10-c5c452efb97a","name_label":"pci.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7588002d-2ebc-c944-8f10-c5c452efb97a","$type":"role"},"OpaqueRef:6e525c86-0bff-99e3-93b1-9130c8b68496":{"uuid":"6e525c86-0bff-99e3-93b1-9130c8b68496","name_label":"pci.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6e525c86-0bff-99e3-93b1-9130c8b68496","$type":"role"},"OpaqueRef:3d046d7f-a1de-59c3-e371-d58126e521d5":{"uuid":"3d046d7f-a1de-59c3-e371-d58126e521d5","name_label":"pci.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3d046d7f-a1de-59c3-e371-d58126e521d5","$type":"role"},"OpaqueRef:e0be1112-51fd-9ebb-5b03-cf2140a2ebe7":{"uuid":"e0be1112-51fd-9ebb-5b03-cf2140a2ebe7","name_label":"pci.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e0be1112-51fd-9ebb-5b03-cf2140a2ebe7","$type":"role"},"OpaqueRef:36bca930-2c10-ece7-d692-5fd29aca70a6":{"uuid":"36bca930-2c10-ece7-d692-5fd29aca70a6","name_label":"pci.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:36bca930-2c10-ece7-d692-5fd29aca70a6","$type":"role"},"OpaqueRef:899a5718-836e-bb6f-7f8d-2ada2bbc96dc":{"uuid":"899a5718-836e-bb6f-7f8d-2ada2bbc96dc","name_label":"pci.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:899a5718-836e-bb6f-7f8d-2ada2bbc96dc","$type":"role"},"OpaqueRef:dd24c4b3-62ab-3d64-f1c9-3c36df94d604":{"uuid":"dd24c4b3-62ab-3d64-f1c9-3c36df94d604","name_label":"pci.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dd24c4b3-62ab-3d64-f1c9-3c36df94d604","$type":"role"},"OpaqueRef:26051e27-35b3-e931-521f-cb8806ecf4b6":{"uuid":"26051e27-35b3-e931-521f-cb8806ecf4b6","name_label":"pgpu.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:26051e27-35b3-e931-521f-cb8806ecf4b6","$type":"role"},"OpaqueRef:30f950cd-ded7-0c2c-e58c-d782eda3d752":{"uuid":"30f950cd-ded7-0c2c-e58c-d782eda3d752","name_label":"pgpu.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:30f950cd-ded7-0c2c-e58c-d782eda3d752","$type":"role"},"OpaqueRef:ed901fb0-1968-23c6-ec49-bdbda2035014":{"uuid":"ed901fb0-1968-23c6-ec49-bdbda2035014","name_label":"pgpu.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ed901fb0-1968-23c6-ec49-bdbda2035014","$type":"role"},"OpaqueRef:b15fecc5-3baa-5969-d2f3-b883ec5f1bde":{"uuid":"b15fecc5-3baa-5969-d2f3-b883ec5f1bde","name_label":"pgpu.get_pci","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b15fecc5-3baa-5969-d2f3-b883ec5f1bde","$type":"role"},"OpaqueRef:e83a8360-7f59-c3b8-6799-39fa6509772a":{"uuid":"e83a8360-7f59-c3b8-6799-39fa6509772a","name_label":"pgpu.get_gpu_group","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e83a8360-7f59-c3b8-6799-39fa6509772a","$type":"role"},"OpaqueRef:47707758-d7e2-88d8-20bd-6f063c40bd18":{"uuid":"47707758-d7e2-88d8-20bd-6f063c40bd18","name_label":"pgpu.get_host","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:47707758-d7e2-88d8-20bd-6f063c40bd18","$type":"role"},"OpaqueRef:b18bd364-663f-1421-4321-d11d27c5b2c5":{"uuid":"b18bd364-663f-1421-4321-d11d27c5b2c5","name_label":"pgpu.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b18bd364-663f-1421-4321-d11d27c5b2c5","$type":"role"},"OpaqueRef:2c9fc908-4e38-a942-5bb7-8fc7e3202324":{"uuid":"2c9fc908-4e38-a942-5bb7-8fc7e3202324","name_label":"pgpu.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2c9fc908-4e38-a942-5bb7-8fc7e3202324","$type":"role"},"OpaqueRef:e362b679-36e0-70bc-be0c-1ca74c94dcba":{"uuid":"e362b679-36e0-70bc-be0c-1ca74c94dcba","name_label":"pgpu.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e362b679-36e0-70bc-be0c-1ca74c94dcba","$type":"role"},"OpaqueRef:34c9c779-9cca-96ea-40b5-252be5f41bc2":{"uuid":"34c9c779-9cca-96ea-40b5-252be5f41bc2","name_label":"pgpu.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:34c9c779-9cca-96ea-40b5-252be5f41bc2","$type":"role"},"OpaqueRef:48ac5191-399a-1660-42c9-754b302eeb84":{"uuid":"48ac5191-399a-1660-42c9-754b302eeb84","name_label":"pgpu.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:48ac5191-399a-1660-42c9-754b302eeb84","$type":"role"},"OpaqueRef:421958db-0318-8810-3244-01f0f855895a":{"uuid":"421958db-0318-8810-3244-01f0f855895a","name_label":"pgpu.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:421958db-0318-8810-3244-01f0f855895a","$type":"role"},"OpaqueRef:154e0584-ee8b-74ae-4e57-b02afd66ba13":{"uuid":"154e0584-ee8b-74ae-4e57-b02afd66ba13","name_label":"pgpu.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:154e0584-ee8b-74ae-4e57-b02afd66ba13","$type":"role"},"OpaqueRef:1a4cfda0-0d18-b966-86c4-b80e7a832211":{"uuid":"1a4cfda0-0d18-b966-86c4-b80e7a832211","name_label":"gpu_group.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1a4cfda0-0d18-b966-86c4-b80e7a832211","$type":"role"},"OpaqueRef:faf17e53-86af-aa3b-93e7-46a7f130d178":{"uuid":"faf17e53-86af-aa3b-93e7-46a7f130d178","name_label":"gpu_group.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:faf17e53-86af-aa3b-93e7-46a7f130d178","$type":"role"},"OpaqueRef:53a516b7-ac7f-519f-b9e4-b9f79a6a1f58":{"uuid":"53a516b7-ac7f-519f-b9e4-b9f79a6a1f58","name_label":"gpu_group.get_by_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:53a516b7-ac7f-519f-b9e4-b9f79a6a1f58","$type":"role"},"OpaqueRef:c6e718ea-7554-1841-ffe9-48304dc85276":{"uuid":"c6e718ea-7554-1841-ffe9-48304dc85276","name_label":"gpu_group.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c6e718ea-7554-1841-ffe9-48304dc85276","$type":"role"},"OpaqueRef:e6e276f5-85c3-01a4-43f6-c7699f4cf723":{"uuid":"e6e276f5-85c3-01a4-43f6-c7699f4cf723","name_label":"gpu_group.get_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e6e276f5-85c3-01a4-43f6-c7699f4cf723","$type":"role"},"OpaqueRef:5607864d-8f51-59c6-74a3-cbe8fdf91e19":{"uuid":"5607864d-8f51-59c6-74a3-cbe8fdf91e19","name_label":"gpu_group.get_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5607864d-8f51-59c6-74a3-cbe8fdf91e19","$type":"role"},"OpaqueRef:67a5efa1-04cf-098a-f236-30b058cd2f59":{"uuid":"67a5efa1-04cf-098a-f236-30b058cd2f59","name_label":"gpu_group.get_pgpus","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:67a5efa1-04cf-098a-f236-30b058cd2f59","$type":"role"},"OpaqueRef:a1fb1090-0bca-17c8-bbc5-ed82e230cdf0":{"uuid":"a1fb1090-0bca-17c8-bbc5-ed82e230cdf0","name_label":"gpu_group.get_vgpus","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a1fb1090-0bca-17c8-bbc5-ed82e230cdf0","$type":"role"},"OpaqueRef:54b50900-4c44-f1b6-edc4-4b9d80e2dc48":{"uuid":"54b50900-4c44-f1b6-edc4-4b9d80e2dc48","name_label":"gpu_group.get_gpu_types","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:54b50900-4c44-f1b6-edc4-4b9d80e2dc48","$type":"role"},"OpaqueRef:0002e248-e4da-6542-fb0f-85214c20b145":{"uuid":"0002e248-e4da-6542-fb0f-85214c20b145","name_label":"gpu_group.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0002e248-e4da-6542-fb0f-85214c20b145","$type":"role"},"OpaqueRef:8c6ddd51-dfd3-4063-a98f-240264641fa2":{"uuid":"8c6ddd51-dfd3-4063-a98f-240264641fa2","name_label":"gpu_group.set_name_label","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8c6ddd51-dfd3-4063-a98f-240264641fa2","$type":"role"},"OpaqueRef:ffd180ac-0266-b6fd-a6f4-720dd314aa73":{"uuid":"ffd180ac-0266-b6fd-a6f4-720dd314aa73","name_label":"gpu_group.set_name_description","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ffd180ac-0266-b6fd-a6f4-720dd314aa73","$type":"role"},"OpaqueRef:a682ee3c-c131-0965-a720-4b4733ac7960":{"uuid":"a682ee3c-c131-0965-a720-4b4733ac7960","name_label":"gpu_group.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a682ee3c-c131-0965-a720-4b4733ac7960","$type":"role"},"OpaqueRef:ba0eb8b7-b7db-c614-7d4a-8e1c4308ed2c":{"uuid":"ba0eb8b7-b7db-c614-7d4a-8e1c4308ed2c","name_label":"gpu_group.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ba0eb8b7-b7db-c614-7d4a-8e1c4308ed2c","$type":"role"},"OpaqueRef:c964a69f-d541-cd37-596d-97ded3a917f4":{"uuid":"c964a69f-d541-cd37-596d-97ded3a917f4","name_label":"gpu_group.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c964a69f-d541-cd37-596d-97ded3a917f4","$type":"role"},"OpaqueRef:b79d6b7a-58d7-384a-1556-9c7f86c4469a":{"uuid":"b79d6b7a-58d7-384a-1556-9c7f86c4469a","name_label":"gpu_group.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b79d6b7a-58d7-384a-1556-9c7f86c4469a","$type":"role"},"OpaqueRef:d918de41-726c-7c74-75bc-66122a9c9d78":{"uuid":"d918de41-726c-7c74-75bc-66122a9c9d78","name_label":"gpu_group.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d918de41-726c-7c74-75bc-66122a9c9d78","$type":"role"},"OpaqueRef:9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835":{"uuid":"9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835","name_label":"gpu_group.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835","$type":"role"},"OpaqueRef:42c1215c-fcd0-e848-88a7-8e9ac7cb001d":{"uuid":"42c1215c-fcd0-e848-88a7-8e9ac7cb001d","name_label":"gpu_group.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:42c1215c-fcd0-e848-88a7-8e9ac7cb001d","$type":"role"},"OpaqueRef:28f7a03f-0ee3-383d-dcd2-ed2a466f62c0":{"uuid":"28f7a03f-0ee3-383d-dcd2-ed2a466f62c0","name_label":"gpu_group.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:28f7a03f-0ee3-383d-dcd2-ed2a466f62c0","$type":"role"},"OpaqueRef:a2c22e5a-4523-2a90-65ed-7501f6d08657":{"uuid":"a2c22e5a-4523-2a90-65ed-7501f6d08657","name_label":"vgpu.get_record","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a2c22e5a-4523-2a90-65ed-7501f6d08657","$type":"role"},"OpaqueRef:93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9":{"uuid":"93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9","name_label":"vgpu.get_by_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9","$type":"role"},"OpaqueRef:ec6018b6-36d9-6815-1de8-7d6fc7e9e136":{"uuid":"ec6018b6-36d9-6815-1de8-7d6fc7e9e136","name_label":"vgpu.get_uuid","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ec6018b6-36d9-6815-1de8-7d6fc7e9e136","$type":"role"},"OpaqueRef:37215355-cf4c-bacb-1e33-1f027fb8c81e":{"uuid":"37215355-cf4c-bacb-1e33-1f027fb8c81e","name_label":"vgpu.get_vm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:37215355-cf4c-bacb-1e33-1f027fb8c81e","$type":"role"},"OpaqueRef:8a1a13f2-8137-b095-84f5-ae67e3c3ffff":{"uuid":"8a1a13f2-8137-b095-84f5-ae67e3c3ffff","name_label":"vgpu.get_gpu_group","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8a1a13f2-8137-b095-84f5-ae67e3c3ffff","$type":"role"},"OpaqueRef:ae118c9d-8c3f-46ad-733e-39af8a3fe63f":{"uuid":"ae118c9d-8c3f-46ad-733e-39af8a3fe63f","name_label":"vgpu.get_device","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ae118c9d-8c3f-46ad-733e-39af8a3fe63f","$type":"role"},"OpaqueRef:21882b95-87bc-8ee8-cc2e-653037903827":{"uuid":"21882b95-87bc-8ee8-cc2e-653037903827","name_label":"vgpu.get_currently_attached","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:21882b95-87bc-8ee8-cc2e-653037903827","$type":"role"},"OpaqueRef:9e6aaac3-334a-9504-3583-2a2f1ecba5b3":{"uuid":"9e6aaac3-334a-9504-3583-2a2f1ecba5b3","name_label":"vgpu.get_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9e6aaac3-334a-9504-3583-2a2f1ecba5b3","$type":"role"},"OpaqueRef:02aea1ba-d9b9-c004-768e-9b298561737c":{"uuid":"02aea1ba-d9b9-c004-768e-9b298561737c","name_label":"vgpu.set_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:02aea1ba-d9b9-c004-768e-9b298561737c","$type":"role"},"OpaqueRef:0e96087f-e831-7f48-65e2-8b335a9aade1":{"uuid":"0e96087f-e831-7f48-65e2-8b335a9aade1","name_label":"vgpu.add_to_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e96087f-e831-7f48-65e2-8b335a9aade1","$type":"role"},"OpaqueRef:001314d7-35e3-9c21-f0b9-083a1775b4d9":{"uuid":"001314d7-35e3-9c21-f0b9-083a1775b4d9","name_label":"vgpu.remove_from_other_config","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:001314d7-35e3-9c21-f0b9-083a1775b4d9","$type":"role"},"OpaqueRef:66dd3e88-4680-311b-0df8-ce833d998744":{"uuid":"66dd3e88-4680-311b-0df8-ce833d998744","name_label":"vgpu.create","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:66dd3e88-4680-311b-0df8-ce833d998744","$type":"role"},"OpaqueRef:96fc2d1c-647c-8b14-e1f8-7b393b923f13":{"uuid":"96fc2d1c-647c-8b14-e1f8-7b393b923f13","name_label":"vgpu.destroy","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:96fc2d1c-647c-8b14-e1f8-7b393b923f13","$type":"role"},"OpaqueRef:b9415fe6-a3a1-5cb8-ca85-df89c1304e8d":{"uuid":"b9415fe6-a3a1-5cb8-ca85-df89c1304e8d","name_label":"vgpu.get_all","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b9415fe6-a3a1-5cb8-ca85-df89c1304e8d","$type":"role"},"OpaqueRef:9bcaf150-0b82-265c-2206-1b5f2d672608":{"uuid":"9bcaf150-0b82-265c-2206-1b5f2d672608","name_label":"vgpu.get_all_records_where","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9bcaf150-0b82-265c-2206-1b5f2d672608","$type":"role"},"OpaqueRef:bb55d298-b018-8a07-a849-bdea9692a88c":{"uuid":"bb55d298-b018-8a07-a849-bdea9692a88c","name_label":"vgpu.get_all_records","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb55d298-b018-8a07-a849-bdea9692a88c","$type":"role"},"OpaqueRef:5e022752-8add-d1bf-4ac1-9c859fd9103e":{"uuid":"5e022752-8add-d1bf-4ac1-9c859fd9103e","name_label":"http/get_services","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5e022752-8add-d1bf-4ac1-9c859fd9103e","$type":"role"},"OpaqueRef:1a7f9365-cd5c-541d-183a-84c0776fe5cc":{"uuid":"1a7f9365-cd5c-541d-183a-84c0776fe5cc","name_label":"http/post_services","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1a7f9365-cd5c-541d-183a-84c0776fe5cc","$type":"role"},"OpaqueRef:6211b6be-10d3-7179-3ce9-c9939bcfef7e":{"uuid":"6211b6be-10d3-7179-3ce9-c9939bcfef7e","name_label":"http/put_services","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6211b6be-10d3-7179-3ce9-c9939bcfef7e","$type":"role"},"OpaqueRef:0f89fff1-7a05-fcb3-2fec-f01f527d9f33":{"uuid":"0f89fff1-7a05-fcb3-2fec-f01f527d9f33","name_label":"http/post_remote_db_access","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f89fff1-7a05-fcb3-2fec-f01f527d9f33","$type":"role"},"OpaqueRef:92720e47-6810-ac5c-2c7c-ecee66919943":{"uuid":"92720e47-6810-ac5c-2c7c-ecee66919943","name_label":"http/post_remote_db_access_v2","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:92720e47-6810-ac5c-2c7c-ecee66919943","$type":"role"},"OpaqueRef:a9c6394a-92dc-b5f3-e377-438eda6cc36f":{"uuid":"a9c6394a-92dc-b5f3-e377-438eda6cc36f","name_label":"http/connect_migrate","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a9c6394a-92dc-b5f3-e377-438eda6cc36f","$type":"role"},"OpaqueRef:ca3fd393-55a0-9270-af2f-9a597674113d":{"uuid":"ca3fd393-55a0-9270-af2f-9a597674113d","name_label":"http/get_services_xenops","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ca3fd393-55a0-9270-af2f-9a597674113d","$type":"role"},"OpaqueRef:9e19021f-426d-0492-91a2-d2bcee7eb6ee":{"uuid":"9e19021f-426d-0492-91a2-d2bcee7eb6ee","name_label":"http/post_services_xenops","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9e19021f-426d-0492-91a2-d2bcee7eb6ee","$type":"role"},"OpaqueRef:1c2b0fce-97b0-af45-8117-3f8a18bf11c1":{"uuid":"1c2b0fce-97b0-af45-8117-3f8a18bf11c1","name_label":"http/put_services_xenops","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1c2b0fce-97b0-af45-8117-3f8a18bf11c1","$type":"role"},"OpaqueRef:69669133-f49c-5eed-22c0-654a80cc085c":{"uuid":"69669133-f49c-5eed-22c0-654a80cc085c","name_label":"http/get_services_sm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:69669133-f49c-5eed-22c0-654a80cc085c","$type":"role"},"OpaqueRef:e800a707-f7c2-c185-80f1-3c298a352591":{"uuid":"e800a707-f7c2-c185-80f1-3c298a352591","name_label":"http/post_services_sm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e800a707-f7c2-c185-80f1-3c298a352591","$type":"role"},"OpaqueRef:ac2c2a4c-d87a-c905-b8d4-52dfac47e848":{"uuid":"ac2c2a4c-d87a-c905-b8d4-52dfac47e848","name_label":"http/put_services_sm","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ac2c2a4c-d87a-c905-b8d4-52dfac47e848","$type":"role"},"OpaqueRef:cc20c134-daa5-044c-3982-93ad5b30ae16":{"uuid":"cc20c134-daa5-044c-3982-93ad5b30ae16","name_label":"http/put_import","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cc20c134-daa5-044c-3982-93ad5b30ae16","$type":"role"},"OpaqueRef:56e4df7c-d3b3-7f0c-5c06-67b936e5c967":{"uuid":"56e4df7c-d3b3-7f0c-5c06-67b936e5c967","name_label":"http/put_import_metadata","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:56e4df7c-d3b3-7f0c-5c06-67b936e5c967","$type":"role"},"OpaqueRef:bfa4946b-f2ad-9e5f-d17d-0d129a9e9afe":{"uuid":"bfa4946b-f2ad-9e5f-d17d-0d129a9e9afe","name_label":"http/put_import_raw_vdi","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bfa4946b-f2ad-9e5f-d17d-0d129a9e9afe","$type":"role"},"OpaqueRef:9dcf063e-c70f-4076-bc7a-6436a11bf93e":{"uuid":"9dcf063e-c70f-4076-bc7a-6436a11bf93e","name_label":"http/get_export","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9dcf063e-c70f-4076-bc7a-6436a11bf93e","$type":"role"},"OpaqueRef:f103f866-344b-fc35-82a2-1d8bd72efa19":{"uuid":"f103f866-344b-fc35-82a2-1d8bd72efa19","name_label":"http/get_export_metadata","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f103f866-344b-fc35-82a2-1d8bd72efa19","$type":"role"},"OpaqueRef:8dbed2d4-f59e-4eda-25f5-49475952e89c":{"uuid":"8dbed2d4-f59e-4eda-25f5-49475952e89c","name_label":"http/get_export_raw_vdi","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8dbed2d4-f59e-4eda-25f5-49475952e89c","$type":"role"},"OpaqueRef:37eccaa8-7371-5762-181b-9221a1f3cdbe":{"uuid":"37eccaa8-7371-5762-181b-9221a1f3cdbe","name_label":"http/connect_console","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:37eccaa8-7371-5762-181b-9221a1f3cdbe","$type":"role"},"OpaqueRef:ab350a94-3042-f6fe-fcdc-d75b304753a4":{"uuid":"ab350a94-3042-f6fe-fcdc-d75b304753a4","name_label":"http/connect_console/host_console","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab350a94-3042-f6fe-fcdc-d75b304753a4","$type":"role"},"OpaqueRef:b5337a5f-8bd6-7c38-19fa-78b2dfe69869":{"uuid":"b5337a5f-8bd6-7c38-19fa-78b2dfe69869","name_label":"http/connect_console_ws","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b5337a5f-8bd6-7c38-19fa-78b2dfe69869","$type":"role"},"OpaqueRef:ebfb160d-b269-e2cd-e530-e1422739fdd4":{"uuid":"ebfb160d-b269-e2cd-e530-e1422739fdd4","name_label":"http/connect_console_ws/host_console_ws","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ebfb160d-b269-e2cd-e530-e1422739fdd4","$type":"role"},"OpaqueRef:c75bb9b3-7413-aa27-4188-ba2a88e56822":{"uuid":"c75bb9b3-7413-aa27-4188-ba2a88e56822","name_label":"http/get_root","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c75bb9b3-7413-aa27-4188-ba2a88e56822","$type":"role"},"OpaqueRef:42163f5b-56b3-9e8e-ee1c-568efc8f5585":{"uuid":"42163f5b-56b3-9e8e-ee1c-568efc8f5585","name_label":"http/post_cli","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:42163f5b-56b3-9e8e-ee1c-568efc8f5585","$type":"role"},"OpaqueRef:7c8150f2-a9a6-88c0-ea1e-7093481218b6":{"uuid":"7c8150f2-a9a6-88c0-ea1e-7093481218b6","name_label":"http/get_host_backup","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7c8150f2-a9a6-88c0-ea1e-7093481218b6","$type":"role"},"OpaqueRef:9c8ae951-d516-eec8-d7ea-fd503c5fb112":{"uuid":"9c8ae951-d516-eec8-d7ea-fd503c5fb112","name_label":"http/put_host_restore","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9c8ae951-d516-eec8-d7ea-fd503c5fb112","$type":"role"},"OpaqueRef:a7e7ccf5-d7a3-c58b-15ac-dd6ac8da3241":{"uuid":"a7e7ccf5-d7a3-c58b-15ac-dd6ac8da3241","name_label":"http/get_host_logs_download","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a7e7ccf5-d7a3-c58b-15ac-dd6ac8da3241","$type":"role"},"OpaqueRef:6d88370b-3862-5c0d-2be0-558320f32846":{"uuid":"6d88370b-3862-5c0d-2be0-558320f32846","name_label":"http/put_pool_patch_upload","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d88370b-3862-5c0d-2be0-558320f32846","$type":"role"},"OpaqueRef:69031664-571b-6054-c87d-77f5766e28cd":{"uuid":"69031664-571b-6054-c87d-77f5766e28cd","name_label":"http/get_pool_patch_download","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:69031664-571b-6054-c87d-77f5766e28cd","$type":"role"},"OpaqueRef:6957a0cf-3546-c299-ad05-c7c67b94f095":{"uuid":"6957a0cf-3546-c299-ad05-c7c67b94f095","name_label":"http/put_oem_patch_stream","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6957a0cf-3546-c299-ad05-c7c67b94f095","$type":"role"},"OpaqueRef:78482840-d3ca-b1b0-0c45-53a75b7824f9":{"uuid":"78482840-d3ca-b1b0-0c45-53a75b7824f9","name_label":"http/get_vncsnapshot","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:78482840-d3ca-b1b0-0c45-53a75b7824f9","$type":"role"},"OpaqueRef:136dc56c-fb71-d27a-6436-6c7a37831d3b":{"uuid":"136dc56c-fb71-d27a-6436-6c7a37831d3b","name_label":"http/get_vncsnapshot/host_console","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:136dc56c-fb71-d27a-6436-6c7a37831d3b","$type":"role"},"OpaqueRef:b7dcdbcf-3a6d-6b68-17b0-0a52a558f759":{"uuid":"b7dcdbcf-3a6d-6b68-17b0-0a52a558f759","name_label":"http/get_pool_xml_db_sync","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b7dcdbcf-3a6d-6b68-17b0-0a52a558f759","$type":"role"},"OpaqueRef:a77f9ed8-e7f7-95ba-6c12-c799c76ade5d":{"uuid":"a77f9ed8-e7f7-95ba-6c12-c799c76ade5d","name_label":"http/put_pool_xml_db_sync","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a77f9ed8-e7f7-95ba-6c12-c799c76ade5d","$type":"role"},"OpaqueRef:c99ef94c-ad6c-4d0a-b60f-eadd036ad879":{"uuid":"c99ef94c-ad6c-4d0a-b60f-eadd036ad879","name_label":"http/get_config_sync","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c99ef94c-ad6c-4d0a-b60f-eadd036ad879","$type":"role"},"OpaqueRef:7f6c525f-a121-4708-5f9b-b6ef7ee97ecb":{"uuid":"7f6c525f-a121-4708-5f9b-b6ef7ee97ecb","name_label":"http/get_vm_connect","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7f6c525f-a121-4708-5f9b-b6ef7ee97ecb","$type":"role"},"OpaqueRef:4f5440f8-84e3-e8a0-de81-efd0ef34d53b":{"uuid":"4f5440f8-84e3-e8a0-de81-efd0ef34d53b","name_label":"http/put_vm_connect","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f5440f8-84e3-e8a0-de81-efd0ef34d53b","$type":"role"},"OpaqueRef:9e2f661c-9cf2-0983-3c14-7c2e4de9eb5c":{"uuid":"9e2f661c-9cf2-0983-3c14-7c2e4de9eb5c","name_label":"http/get_system_status","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9e2f661c-9cf2-0983-3c14-7c2e4de9eb5c","$type":"role"},"OpaqueRef:05cf5f8c-0219-db92-26a1-29047a37c972":{"uuid":"05cf5f8c-0219-db92-26a1-29047a37c972","name_label":"http/vm_rrd","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:05cf5f8c-0219-db92-26a1-29047a37c972","$type":"role"},"OpaqueRef:4fc1bf13-e0be-d634-8559-8b19c590afba":{"uuid":"4fc1bf13-e0be-d634-8559-8b19c590afba","name_label":"http/host_rrd","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4fc1bf13-e0be-d634-8559-8b19c590afba","$type":"role"},"OpaqueRef:618815a8-ec46-44b9-06f4-0d53ecfb1fbd":{"uuid":"618815a8-ec46-44b9-06f4-0d53ecfb1fbd","name_label":"http/rrd_updates","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:618815a8-ec46-44b9-06f4-0d53ecfb1fbd","$type":"role"},"OpaqueRef:6ab3a927-cd0b-5cea-885f-1191a21ccebf":{"uuid":"6ab3a927-cd0b-5cea-885f-1191a21ccebf","name_label":"http/rrd","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ab3a927-cd0b-5cea-885f-1191a21ccebf","$type":"role"},"OpaqueRef:32b9bc96-01b8-dd88-a59d-3294434bcf10":{"uuid":"32b9bc96-01b8-dd88-a59d-3294434bcf10","name_label":"http/get_blob","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:32b9bc96-01b8-dd88-a59d-3294434bcf10","$type":"role"},"OpaqueRef:a8ffab48-a8e1-853b-f61a-0d9324076916":{"uuid":"a8ffab48-a8e1-853b-f61a-0d9324076916","name_label":"http/put_blob","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8ffab48-a8e1-853b-f61a-0d9324076916","$type":"role"},"OpaqueRef:63cea2bb-cb2a-19ba-fed2-35e55e2088ea":{"uuid":"63cea2bb-cb2a-19ba-fed2-35e55e2088ea","name_label":"http/get_message_rss_feed","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:63cea2bb-cb2a-19ba-fed2-35e55e2088ea","$type":"role"},"OpaqueRef:1c05c0f1-dfa7-f44a-7c7e-40bf1149e207":{"uuid":"1c05c0f1-dfa7-f44a-7c7e-40bf1149e207","name_label":"http/put_messages","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1c05c0f1-dfa7-f44a-7c7e-40bf1149e207","$type":"role"},"OpaqueRef:b4ccebf0-cc8c-75f1-04b5-6df76d8fa138":{"uuid":"b4ccebf0-cc8c-75f1-04b5-6df76d8fa138","name_label":"http/connect_remotecmd","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b4ccebf0-cc8c-75f1-04b5-6df76d8fa138","$type":"role"},"OpaqueRef:5ba592b5-eb3c-5b65-0bfa-a7c73bc62cb2":{"uuid":"5ba592b5-eb3c-5b65-0bfa-a7c73bc62cb2","name_label":"http/post_remote_stats","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5ba592b5-eb3c-5b65-0bfa-a7c73bc62cb2","$type":"role"},"OpaqueRef:a7d2f695-623b-686f-25e5-e470bd6373e1":{"uuid":"a7d2f695-623b-686f-25e5-e470bd6373e1","name_label":"http/get_wlb_report","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a7d2f695-623b-686f-25e5-e470bd6373e1","$type":"role"},"OpaqueRef:4322c6ea-1807-3e88-4104-269a8510c62d":{"uuid":"4322c6ea-1807-3e88-4104-269a8510c62d","name_label":"http/get_wlb_diagnostics","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4322c6ea-1807-3e88-4104-269a8510c62d","$type":"role"},"OpaqueRef:1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004":{"uuid":"1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004","name_label":"http/get_audit_log","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004","$type":"role"},"OpaqueRef:a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c":{"uuid":"a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c","name_label":"http/post_root","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c","$type":"role"},"OpaqueRef:78f71ff6-7c64-3281-44b9-025cf751e185":{"uuid":"78f71ff6-7c64-3281-44b9-025cf751e185","name_label":"http/post_json","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:78f71ff6-7c64-3281-44b9-025cf751e185","$type":"role"},"OpaqueRef:44847e22-2d67-3744-0698-506f6a8243e9":{"uuid":"44847e22-2d67-3744-0698-506f6a8243e9","name_label":"http/post_root_options","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:44847e22-2d67-3744-0698-506f6a8243e9","$type":"role"},"OpaqueRef:7e5e9fde-3ee4-7cf1-4756-915f745b4914":{"uuid":"7e5e9fde-3ee4-7cf1-4756-915f745b4914","name_label":"http/post_json_options","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7e5e9fde-3ee4-7cf1-4756-915f745b4914","$type":"role"},"OpaqueRef:f7367c8b-fa04-520e-e0cd-3c3e1aef8bc3":{"uuid":"f7367c8b-fa04-520e-e0cd-3c3e1aef8bc3","name_label":"task.destroy/any","name_description":"A basic permission","subroles":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f7367c8b-fa04-520e-e0cd-3c3e1aef8bc3","$type":"role"},"OpaqueRef:7955168d-7bec-10ed-105f-c6a7e6e63249":{"uuid":"7955168d-7bec-10ed-105f-c6a7e6e63249","name_label":"vm-power-admin","name_description":"The VM Power Administrator role has full access to VM and template management and can choose where to start VMs and use the dynamic memory control and VM snapshot features","subroles":["OpaqueRef:cb68795a-8d1c-f2bb-6869-4946fd2df840","OpaqueRef:1839c84a-cc70-8ca7-c500-f2d85b30aac4","OpaqueRef:eb5f0341-f8a6-e605-9433-d85031bb2770","OpaqueRef:da8ebe60-05d9-260e-84f8-b13dafaf518d","OpaqueRef:ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251","OpaqueRef:6523834f-9b0e-f8b9-2417-43e0fc980cd1","OpaqueRef:df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597","OpaqueRef:632bc7c1-60f2-a9ec-2db6-77992be390a1","OpaqueRef:73ef731b-d2b8-a643-f02a-276577b88b3f","OpaqueRef:e9008880-3714-e128-fcd5-d95cb8ee790b","OpaqueRef:efef35a8-cf3d-5f27-e7ad-a2f6f5202dac","OpaqueRef:52684caf-e375-6caf-3396-62bcd5134d0c","OpaqueRef:f39da662-3800-921b-a6d2-237aa094b51f","OpaqueRef:9fea0775-bfb0-bfd3-ea51-8d64335d23c5","OpaqueRef:9dd59816-dea5-9ea6-d863-53ddeae637c8","OpaqueRef:d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64","OpaqueRef:9eaf06ef-8f42-4832-7099-e5a63d32a87d","OpaqueRef:fd7dc035-3957-b7a1-f7e9-905f9f523ff4","OpaqueRef:cb82f07a-4829-4df9-1817-2e6979df85a1","OpaqueRef:daa86366-a0f6-b130-2d3d-77fe1355d6a3","OpaqueRef:91a8843e-12a6-4b4a-2d43-12db6b326490","OpaqueRef:bb22da75-1be1-172d-d8fc-1a1d7c45e425","OpaqueRef:ff06fa4e-8ca8-799a-f189-9cce85f6de90","OpaqueRef:95a849f8-0df0-feb8-7f87-4db6bf42da08","OpaqueRef:15dbefed-137f-5c07-a484-8f1ba24fb156","OpaqueRef:a3181fc3-eb26-baa4-ddf9-a6c9f2af5812","OpaqueRef:966296b4-fccd-e24b-96e7-d849e9aeb629","OpaqueRef:e8564257-d2d5-cfdb-03cc-93d65e6fbaa3","OpaqueRef:cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51","OpaqueRef:bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c","OpaqueRef:868dae0b-7f24-6fde-fc5d-0efebefe3c16","OpaqueRef:7193632f-b165-b0df-6eec-2e71f08aa430","OpaqueRef:38d061c2-1df2-dbbb-c049-44bc0b68eb1b","OpaqueRef:606450c8-c382-ccf0-2505-0ac239ad4adf","OpaqueRef:945bb27d-4f1f-d1ff-0e32-baa566437bb4","OpaqueRef:2c8931b8-0efd-9380-aa53-ab086ba4a2cd","OpaqueRef:0f9390a9-fd1b-1f93-d557-738545a56943","OpaqueRef:defae495-80af-75ac-d7de-a87a7dfcde9d","OpaqueRef:2e0163e9-7ec0-4088-aea5-688b3188b974","OpaqueRef:b0104ee0-e56e-e24a-01c9-be7b31ebac3f","OpaqueRef:daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4","OpaqueRef:ee19a249-eb0f-2076-81a7-8fe7cbff99b8","OpaqueRef:c43079a6-7821-364b-4269-05745d93e29a","OpaqueRef:4a544977-600a-957b-28e2-3b578998c8f5","OpaqueRef:24182612-bdde-08d8-8548-7a8922b40d59","OpaqueRef:0c393fa2-41f9-c981-5581-eb3000f8316d","OpaqueRef:5fa8a325-b230-e422-624d-78faf5473eda","OpaqueRef:19a7836b-75be-43f1-9f23-856f2be12fc3","OpaqueRef:c4dfc733-e053-1074-1a54-5cbc33ddf686","OpaqueRef:7d443d66-a509-ddd4-daf9-8f5c4ba55b4c","OpaqueRef:6ad192de-f028-0771-7f5b-bd20a8fe4caf","OpaqueRef:1421d041-f186-04a8-be92-a1b91244eba4","OpaqueRef:a66cba35-0b84-5261-664f-39c0d9ed54c4","OpaqueRef:e2cf5c12-4316-3fde-fdee-1f962e52a24f","OpaqueRef:f181149a-5c39-d532-a32d-b4c0cbf30f76","OpaqueRef:31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f","OpaqueRef:532e25ef-d282-4334-8145-2e7b0573c7b6","OpaqueRef:87e03946-2afb-f82b-7c4c-648c5f68bcb0","OpaqueRef:a62dfce5-4367-62b4-2b47-f178439fa685","OpaqueRef:5ff08560-8064-5ddb-b549-9c57ceae4cd8","OpaqueRef:d0c0c85c-c3e0-5012-0a48-59d9c2d517c0","OpaqueRef:b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3","OpaqueRef:66fa6648-3999-7a19-20c9-a25827d96b8d","OpaqueRef:0b7902b4-8ad6-b117-efbb-c2c2f056e009","OpaqueRef:2bf43b36-87e9-a224-4f48-9378843e4650","OpaqueRef:761f5f58-389c-d42b-185b-27d3649589e6","OpaqueRef:7a7b22ac-e5d5-cea0-a320-857896f593e4","OpaqueRef:f64ba22a-a70a-57da-34a6-adde7f50b686","OpaqueRef:182167f3-6dc0-b2c6-0ddb-2264903634cc","OpaqueRef:96052543-180c-6280-5b15-f2cc3cc4b089","OpaqueRef:eaf5e80c-79cc-aed7-f41c-23ea41568a39","OpaqueRef:acbd6ba4-b816-8e9c-9298-cae8b10234eb","OpaqueRef:0a581d00-0a14-6c1a-eb08-aee55c2a02fc","OpaqueRef:e61fbfbb-27a5-9b4d-c763-e9222b04d2fa","OpaqueRef:7f2c447a-558b-085b-53f4-15e9bde0bbec","OpaqueRef:acb54550-5aba-4e19-612e-12fa420b5687","OpaqueRef:f2eb9161-758d-0fb1-d254-0d20c628c865","OpaqueRef:35b648f4-a14e-5d25-fb59-57c74efda911","OpaqueRef:d40676d9-ddd6-21bc-cde1-e61e9e340cbf","OpaqueRef:433e5373-291c-2ea1-5b7e-81157e537309","OpaqueRef:074922ac-6eb0-c3b9-795b-62ef8efa69b7","OpaqueRef:cf2ec962-5270-cf53-d7ee-c29b07d2eb67","OpaqueRef:694efbc2-ae2c-5110-66c3-6a790f9f4179","OpaqueRef:5b0b6fc6-b286-89fe-4915-9f8fd82ebe41","OpaqueRef:e9de48a1-e723-e998-5aa2-856511ddd799","OpaqueRef:51f79664-2471-8018-6975-c75f214995f8","OpaqueRef:da9e6d7f-1d0a-50ef-1a87-8ace46f5be45","OpaqueRef:39ffaa22-27dd-5241-7880-ea677905cf86","OpaqueRef:552e253c-3b23-b27a-08b9-8342ba2c7aa9","OpaqueRef:6c815ba2-1dc8-c9da-9e17-61367f52328e","OpaqueRef:d2446ff6-79b3-58d0-1428-0dbe75485624","OpaqueRef:c35132f9-9d6b-4d83-8814-386c304c5b02","OpaqueRef:8eb4a4e6-e48a-310f-6850-cdf1fe544858","OpaqueRef:6692b21c-f620-f0e5-dbf2-dee1294645f2","OpaqueRef:090b0fa9-c127-16e5-4c17-4d08b4126ac3","OpaqueRef:03e94bb0-c911-2f70-33f8-b41aae2c6c18","OpaqueRef:b63d6fef-2e86-46e2-432e-3810c30a3fa0","OpaqueRef:fd737c61-91a8-e31f-49c9-ac46ef649b95","OpaqueRef:120c9250-46ec-3a62-fa14-99923beac495","OpaqueRef:398b78fb-3fe4-77aa-0c1a-9813c4f82308","OpaqueRef:76f60054-8565-3e4e-8f56-8a0d10e7b319","OpaqueRef:2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba","OpaqueRef:d1068e76-7374-9cf8-7189-03e003acf7c8","OpaqueRef:c9d198f0-f2bc-2be1-3d96-298db54fc798","OpaqueRef:2abfa053-fde1-2b41-3f57-42d9bf4fa586","OpaqueRef:d7ea15b2-0664-1cd5-dc30-7c49a546ae80","OpaqueRef:e2203194-7c7f-1b58-83b8-965b7c88898c","OpaqueRef:fe22cf0c-dbf4-50c2-8eab-9f9ab233142f","OpaqueRef:7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a","OpaqueRef:07de6fc1-c0cd-9b21-36c3-5baccf8d66ce","OpaqueRef:91d91080-a0b6-52e1-6c47-f19344682005","OpaqueRef:e35d6b89-5c97-f156-31c9-e518d3388659","OpaqueRef:530fe816-39e5-b429-2034-eed4c4463bea","OpaqueRef:6560fc11-49fa-5009-b9d6-0ec78e323867","OpaqueRef:ce8c8758-07cd-04b4-8086-945682e2b949","OpaqueRef:bb97a595-e5af-1b54-9397-9252a92e5d35","OpaqueRef:1bf80bec-4d61-7551-907b-63dfdb72c416","OpaqueRef:bc0653a4-e028-efba-fae8-e5b17731c375","OpaqueRef:539f0c4e-7084-9181-9fe7-4ed8e2c32095","OpaqueRef:6ee3304b-df34-a1cd-3e11-530d22b55642","OpaqueRef:c374b534-db7c-2c7e-f405-b061d3adc23d","OpaqueRef:006a72c8-531f-e719-3fdc-69f8b5c5f8df","OpaqueRef:4d842444-22ca-0ae0-365f-96b9de2639a1","OpaqueRef:4b46d426-0071-da23-974a-d20ba16379eb","OpaqueRef:2b5a7aab-29a5-b3cf-2d91-944fb2d22e66","OpaqueRef:9801533b-f160-629a-a994-e742e7971455","OpaqueRef:7033b792-890a-4ca5-0314-d6e8866d98ff","OpaqueRef:bf00c330-4ef3-1109-c17e-cf69d8996cf8","OpaqueRef:e58e85dd-0873-8df8-bf0e-a78ad73a0d83","OpaqueRef:7c284010-cae5-10b6-b321-ec149287a8c6","OpaqueRef:cd2c87ac-2763-dd45-0e22-b563622e5c9b","OpaqueRef:7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7","OpaqueRef:f78d82f7-c143-7172-096e-ad50798f475c","OpaqueRef:e4aac618-ccf9-4592-c23d-f829bbcf563b","OpaqueRef:08cfa7e7-f341-4a78-6035-87d5741d02e8","OpaqueRef:5103be90-76c6-cffd-3512-d622d93a74a2","OpaqueRef:6b28edf5-7612-be94-cccb-b7f2993b9104","OpaqueRef:d6645112-98c5-829e-d842-8d0241d909d8","OpaqueRef:a31fb120-d59f-d003-f445-557c6d40f0b5","OpaqueRef:54014da8-4ef9-638c-1089-074874d47231","OpaqueRef:f094e5cd-c351-cdcd-01a2-a9c9ee14941e","OpaqueRef:0e32a766-a0a5-00a3-0058-0bce4987d801","OpaqueRef:d632d605-4171-f42a-7898-62245cc28f04","OpaqueRef:4b7ea29b-eec1-c56a-304a-b68c88799fed","OpaqueRef:1165f711-b47e-76ec-dbac-4c225b4b9ddf","OpaqueRef:1b53cad1-0fb1-6b52-0875-c7f999a1a02f","OpaqueRef:009895d6-2a35-f2b9-5dbb-fca46c208424","OpaqueRef:d533db5f-b3c7-5053-942c-1ec28b1f25b0","OpaqueRef:3f3ec99f-91cf-3ae6-8a10-78901c4b25ec","OpaqueRef:1a1d982c-8dfb-5dc2-c535-265eaf8adb3e","OpaqueRef:86098675-bebe-e1d7-c063-988b04499e45","OpaqueRef:b798b24d-1067-d2ea-7fc9-f147d916ba47","OpaqueRef:b4992000-119b-662e-22d3-ff2ba2a55c0b","OpaqueRef:2694b9ba-caae-160a-1fee-c4401f7eb871","OpaqueRef:20192ebc-be70-d33d-c163-1770a526a958","OpaqueRef:76df53df-4e08-fd20-80be-8382f055f47a","OpaqueRef:c58e0892-cfab-2364-6b9a-fccf603a29e6","OpaqueRef:09f1a83f-01ae-ed9c-c781-98517d1dd3d2","OpaqueRef:d1e16e8d-92e0-ccc1-c85c-c2244e99ae74","OpaqueRef:27e9e225-a5b7-ca6e-75d3-5b4cb52d3627","OpaqueRef:9a38b22c-0f0e-1bb3-323f-04b4445a3700","OpaqueRef:b6a98068-1e06-e7fe-1010-269343afa0b2","OpaqueRef:f0155615-65ba-9161-c3bb-cac286bae2b1","OpaqueRef:d3c5c812-c278-9827-8e2a-24bbdab201a7","OpaqueRef:531f332b-49aa-b429-6f50-4d803205f792","OpaqueRef:fcf7dbbf-286d-73ec-e9e6-6c329a627d01","OpaqueRef:b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e","OpaqueRef:04e56171-2991-e1d5-f908-d6aa4ea70bfd","OpaqueRef:e57f5462-775a-c7cb-0098-6f5d512abece","OpaqueRef:f35f5fa2-d886-5a8f-a5e4-1e41237e20d9","OpaqueRef:d2071cda-fa54-9231-7db2-fddb3112eae7","OpaqueRef:0423894e-139f-10e1-855f-4a550175b615","OpaqueRef:f089614b-16db-9e28-06f9-0e0ca7be5320","OpaqueRef:941a6983-a5e2-3772-ed58-1e2aa29b1436","OpaqueRef:47999374-b082-b73d-09d1-37bb2836d522","OpaqueRef:5937be6e-540c-da35-a08f-45b6bee6950c","OpaqueRef:dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded","OpaqueRef:84aed1e7-ce75-1c04-9221-b41765e7ec25","OpaqueRef:e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8","OpaqueRef:e66a5a0f-8c8e-d629-ba92-1b1f0374498e","OpaqueRef:12c18c1a-3ecf-e8bb-646a-eaaf975c5813","OpaqueRef:fad90582-c075-9587-bf3e-d24d76692ba8","OpaqueRef:13a11943-2578-a1c5-b1f4-c5e25c5d070f","OpaqueRef:7a156321-0c6b-a61c-3cda-d9e580d35fbd","OpaqueRef:b005f138-d13c-ebd2-bdd5-1e4550f3ba91","OpaqueRef:c00d0e92-ac51-2914-ce0f-01292607e440","OpaqueRef:12dca690-28d3-8620-e4b6-a16beff24246","OpaqueRef:2d90779e-cf44-eaf2-b452-f843b56b58fe","OpaqueRef:79f576b0-2f82-8786-3ef1-7e90ef0fbd56","OpaqueRef:9a8e1a97-9547-897b-dddb-5753fc491146","OpaqueRef:ea2e80cd-54dd-4feb-e266-4c4a8acf47da","OpaqueRef:1f843368-7d86-3388-f5e1-37e7451690e3","OpaqueRef:612d96c0-c6d3-073f-c3af-a9a471d6372e","OpaqueRef:6a10a27b-0a5b-721a-3a2a-931542eb779f","OpaqueRef:c86ce51a-f6ca-5685-503a-e8f988d8f3a1","OpaqueRef:ee92c33f-0176-2f81-7850-d8274d543cbd","OpaqueRef:05e477c2-6a5d-f53a-ccf3-28f472a19553","OpaqueRef:f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490","OpaqueRef:40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f","OpaqueRef:654a657c-4f57-0385-b0b5-f11bc085f916","OpaqueRef:b0d95391-a938-cc75-303e-543e6a5c07a5","OpaqueRef:a46d2d35-0fdf-7a75-6025-ee689f25773c","OpaqueRef:b1dcf01e-9390-4ad1-0f2f-8263dd9476c5","OpaqueRef:bc55b6ed-c4df-4cf5-2118-8421fca4dfba","OpaqueRef:caf63646-b530-624d-9fa6-d6b1ecfb1c82","OpaqueRef:ab0341ec-b69f-cafb-c519-d7f18a922839","OpaqueRef:398b1e83-6b06-7664-4efb-ee31275c86f7","OpaqueRef:e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333","OpaqueRef:15b8f6a0-991c-7089-1ef9-13e4f77e2556","OpaqueRef:4a622ed6-a1ca-4eba-7b12-59480d645194","OpaqueRef:61c08156-de47-7f68-035a-7cb5e42de46c","OpaqueRef:7823a440-ae2e-1c9a-d613-1aca2913b5cb","OpaqueRef:e80dcb82-245c-feaf-ac10-679cabce6713","OpaqueRef:c7c664cb-1efc-9388-91d0-28100c085aaa","OpaqueRef:3f3480e8-c6fc-b6bf-05f0-a6377ab50db1","OpaqueRef:b5189a1d-4fd2-8953-ab9d-8b970655f47c","OpaqueRef:02e0b886-32f4-1f25-d83e-6e88ab11e20f","OpaqueRef:9cd6b930-8313-fbc2-7214-083a6d9ab81c","OpaqueRef:92e5a45a-edd9-635c-8929-b4956320c847","OpaqueRef:dbc87b09-5539-c8fd-9c4e-0659a7217325","OpaqueRef:cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f","OpaqueRef:866c4d54-adbc-cd19-1540-183e7ad9bdd4","OpaqueRef:43bed9f5-4bb8-551b-8540-922b40e0dd42","OpaqueRef:d1ff49a6-6866-db73-c3ed-6faeb5460a6f","OpaqueRef:4c98e491-6bb2-7ce7-460a-3a9471bbd598","OpaqueRef:9ee4625a-e02c-100a-c621-43852bfa3d29","OpaqueRef:a0be8b9a-d205-110e-3d25-525f697490b8","OpaqueRef:c236c0c3-35a5-f7a4-59d1-1f7c0b9f3e6a","OpaqueRef:0f24aebf-4e7a-325e-2741-6a1d2058ec31","OpaqueRef:16903632-2be2-df6a-f611-5e3c49cbe0dd","OpaqueRef:68842386-54d4-21d0-b374-3868c4195c7d","OpaqueRef:8ab9b8e5-1b7e-b05f-7889-da1b89be11f8","OpaqueRef:f455a71e-e0ba-5da9-3b16-89ad594976cc","OpaqueRef:f54e4617-9438-c1ba-d8d6-572fac712fb5","OpaqueRef:f2495b2a-1230-9278-bebd-93fa6d8b3fbd","OpaqueRef:29ad72a1-9024-a9b4-9224-65f66ba950f5","OpaqueRef:1794530b-615b-581c-6a04-f5582a545c32","OpaqueRef:845ce175-49cd-1ce3-0ffb-0267ce3afeab","OpaqueRef:fb9b9a1e-8d10-f254-c1c5-6848f19e82a8","OpaqueRef:a7af6687-e67d-2820-4eb8-d3f45c68f237","OpaqueRef:26bf73e8-f349-dba2-a7e9-9eb1e0b182cb","OpaqueRef:88f04cd7-9daf-fb60-ec90-720bc2a252c2","OpaqueRef:dffecfb1-e0db-1f2b-87e2-109d72562608","OpaqueRef:aa8f3abf-5f51-8ef1-038c-5f5391c1762e","OpaqueRef:076441c4-1fe6-1681-52eb-5593cd018537","OpaqueRef:b55d8910-9487-9485-5408-06d3a0232abc","OpaqueRef:13aef116-19fe-3a1f-2041-41f5a1a41e3d","OpaqueRef:c4739e90-efac-29be-27ee-b40047d88653","OpaqueRef:e5ab4d36-a5f8-3a95-ee23-281c9e16974f","OpaqueRef:81fd4de4-5bbc-7ba4-c2b9-8d2cf7e80974","OpaqueRef:4fd7812c-7d30-e97e-73fd-f428da986071","OpaqueRef:45182b24-24c6-6a9c-01c3-49ac4a6bfb04","OpaqueRef:b4c7644e-ca1d-c511-fba7-3f7474dae079","OpaqueRef:bf77e796-59d3-18c0-116e-a30e514e47ef","OpaqueRef:c70f5e19-5cc8-09b0-900e-752d10caae49","OpaqueRef:ab44acd6-dc9d-6533-3e96-eeb6690c03ab","OpaqueRef:67bfa576-0e16-1fbc-3916-7c7258702d23","OpaqueRef:181f66ab-cc92-1fc8-b3a9-8b4bb1f74acf","OpaqueRef:cae4947e-dfd0-ceef-f8e6-7de4e4596a0e","OpaqueRef:f48b609b-4cbe-b22b-5240-10d3b4df505a","OpaqueRef:19a7222c-dbb7-e646-6160-c30e82608772","OpaqueRef:b1203245-34c3-7026-c290-d998c5e94b69","OpaqueRef:7a3744a6-02a0-fe82-1201-31301aea1f2f","OpaqueRef:d24ca751-b516-edff-736c-3e6b0719115b","OpaqueRef:f458e427-5928-9057-c219-df99153fc075","OpaqueRef:895c0c2e-8b08-ed68-e7c9-c2ca8ebea573","OpaqueRef:0653de2c-ffd3-554f-d7be-1ecd0e140093","OpaqueRef:d1d95133-7aad-02fb-0ef4-0e3553fbfe1a","OpaqueRef:e215abe9-6d54-dc46-ed03-61829c477270","OpaqueRef:06044457-78bd-e927-7926-06cd6cda2dc8","OpaqueRef:f6424fe6-db32-cf8e-e2d1-b5e570812e12","OpaqueRef:7fa1e0d6-4301-86d3-f678-989f56a7f9e5","OpaqueRef:4e458b99-04ca-4759-4f2b-25943a270d11","OpaqueRef:3a33c68f-e787-39c5-568b-9ed6c00f64ba","OpaqueRef:ad25d5f7-52e3-29a6-3e54-9e8b0cdfe8b2","OpaqueRef:0f9a4bd3-1ac7-0694-d293-5b5cdd3a96d1","OpaqueRef:24b924aa-926c-879e-d2c1-fe778e82ccee","OpaqueRef:b91518fe-0a95-4001-8b10-34e30581fdef","OpaqueRef:b6096493-b47b-3bc4-a9b9-6d670a304017","OpaqueRef:4788c0d8-8cc1-11b0-c43c-0ea2b02689b8","OpaqueRef:60d79042-e0b2-74fb-5fc3-25ff0e9f200b","OpaqueRef:0391a375-885e-a621-2ed0-c5a05e6ba6d1","OpaqueRef:e0953596-a798-5359-5ae9-dc7d3cc23411","OpaqueRef:0c318a73-1355-8297-1aa7-7b59652d83eb","OpaqueRef:499c5989-c80a-2567-6f8b-50b0cf1f569a","OpaqueRef:0054aad9-6816-61a5-593d-ffcf68fe7c51","OpaqueRef:4f62cf52-b15f-d722-3b4d-51a9c67ecf9a","OpaqueRef:80305d17-0b56-9f66-6d8c-40abe30a928a","OpaqueRef:0d61beaa-950d-ce01-5971-cd55d77d0270","OpaqueRef:db89f0c4-5678-d02c-dbc9-ade235685c16","OpaqueRef:9a38b098-e1d0-7721-6817-e74d3cc63321","OpaqueRef:7ff61b17-b047-7486-b476-3a46d8a3f5dc","OpaqueRef:7e213280-e967-f94d-2663-7c0cd886aa71","OpaqueRef:d443b5d9-94b5-50ce-a635-1ca03b81bcb7","OpaqueRef:3904db64-cf40-5c0d-9dfd-f97f8a5c4746","OpaqueRef:73494c5b-8e2d-5a6e-ffe3-1b7b7bc64370","OpaqueRef:bfac8769-a392-43a1-ee61-7efe606bddbd","OpaqueRef:1330c0d2-46d4-907c-dc55-725b8eea1b3e","OpaqueRef:49fbebcc-02ad-db79-cfb4-b3785cd53591","OpaqueRef:2c2b24ff-c9f5-e38c-ca9e-f3301fb492d5","OpaqueRef:ae7f81c8-3176-2c9b-98b2-0860a8df1037","OpaqueRef:9be81833-9377-e63c-a52b-84bf2885644d","OpaqueRef:ac16b434-b718-b77f-e797-4c8032c9a21b","OpaqueRef:de8bf714-f486-251e-f6f5-e566b8de1a9e","OpaqueRef:4f02c846-8a2c-b20c-9641-9f8019ccfe23","OpaqueRef:5eda22ca-411c-59df-3c2d-e8c40ee2a641","OpaqueRef:a23b22f9-bca1-caab-136d-9d1c6ee976b1","OpaqueRef:5b776f2e-a041-f093-8497-48c16883f061","OpaqueRef:b58c1211-94fb-cc3f-668f-9c64343d5ef6","OpaqueRef:f91b4e6e-e238-9fad-e78a-a61f6c222122","OpaqueRef:2c3326c9-127f-aee9-2e6b-520465156ca9","OpaqueRef:d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0","OpaqueRef:da44ea34-34ce-eee1-0fe5-e2fbd374087c","OpaqueRef:291376bb-00a4-4520-d42b-6fc685798827","OpaqueRef:c0eeaefd-fce4-4122-bf5f-6548c7627ecd","OpaqueRef:c76febe4-ccb8-b0f6-d9f3-eddfb8068cbe","OpaqueRef:4eb6785b-2126-b2f8-2c55-f5a0b59694e9","OpaqueRef:f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473","OpaqueRef:7862cac7-5a00-3e1c-fa98-1ccad464efde","OpaqueRef:7afd9229-b870-bc5f-9dd0-c8e3aae1edd8","OpaqueRef:222b2a69-0e63-09d7-7547-63753f22a07e","OpaqueRef:ab13cd53-fee2-e913-c1d5-d8a73d183c04","OpaqueRef:50c826b9-553f-0f9d-6ec5-e56c4bfc700e","OpaqueRef:dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9","OpaqueRef:e558eee8-cc61-ab94-2838-d11ecb19b9de","OpaqueRef:f0b68388-4ffe-ae16-785c-73bf1daf76de","OpaqueRef:cca9c4ef-8dc4-3928-6973-1001fefddcc1","OpaqueRef:1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb","OpaqueRef:bb0a41c6-9f17-3373-fceb-43ef16b241b5","OpaqueRef:78595ea9-9a7b-2bb2-b7ac-888947bb5f71","OpaqueRef:05540a9b-fd89-62d4-15c2-569bb74a45c9","OpaqueRef:8624fdc6-5a79-3477-2f2b-a692d687856f","OpaqueRef:6c868e70-45f5-7510-e697-31565da1b645","OpaqueRef:50baf2ac-cd2d-8c58-6b49-7d922a38d506","OpaqueRef:b8d7db71-88c3-3973-0f76-afb5ea8758b2","OpaqueRef:b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa","OpaqueRef:c7b3adec-b936-8480-8162-4d0176e80494","OpaqueRef:1611b4a5-6d76-0608-be83-bb85cc0f4401","OpaqueRef:76add74c-9a76-ec09-e9ba-062f5fad673a","OpaqueRef:1eb1cfda-f398-99f9-2b7b-5a186bfb5769","OpaqueRef:48e48870-e314-22ff-23e7-9c81e0a09de8","OpaqueRef:6b99cb7e-9854-bbfe-13c4-23c85b58cd27","OpaqueRef:3b17375c-d99f-b75d-771a-d6bd526bc732","OpaqueRef:330de495-5f10-90ae-9985-a622287978cd","OpaqueRef:6950f134-0be9-1cf8-a418-b84f72b5c550","OpaqueRef:2da47eda-326e-bc79-2991-4178a7f91aa2","OpaqueRef:d3e10235-4c09-4b21-ac38-f5e7118ace9a","OpaqueRef:1cb862c1-6e27-7e9a-1757-d3340ce05a6a","OpaqueRef:4bf0efdd-5a06-f1f2-9e42-235746e68e72","OpaqueRef:07e67067-0db3-473e-f720-1b13cb7165cb","OpaqueRef:59d3a529-afca-f562-204f-bc882519cfc6","OpaqueRef:6745eaf1-b724-7ba1-6adc-6714d87ed055","OpaqueRef:fb5f1cd9-639c-fe4e-736e-59f602bd6769","OpaqueRef:63f5ab90-88e3-b9c7-869a-ad1e4725f6c8","OpaqueRef:8b2811fe-bf52-d656-379d-c4dc786d2863","OpaqueRef:f075184a-6d67-aeee-23f9-4af9fb3fdc70","OpaqueRef:72acb54c-837e-f60b-5b73-54258ba6f8ce","OpaqueRef:fc02d213-9915-5d79-f9f9-77981d5e7e61","OpaqueRef:fe33f11b-7386-0023-20a5-5d66b81d1550","OpaqueRef:ea08f6e0-a317-ec4e-b863-b58cd69e6f55","OpaqueRef:07ba3c3a-6d81-f137-050b-460a090cd95e","OpaqueRef:c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e","OpaqueRef:b8e13938-03be-2a5d-fc3b-425b8f7966f9","OpaqueRef:d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8","OpaqueRef:6419de42-529d-e793-ac14-e1afc0f4d3d7","OpaqueRef:e17a593c-8a4f-f38a-ebca-9bfefa5ca0d7","OpaqueRef:52e71fd0-4e0c-c56d-ecbe-1258494bd886","OpaqueRef:7980080f-48b6-928b-4b88-114da9c5fd80","OpaqueRef:36ef005e-7879-0edf-e7d9-54b5b5f6e467","OpaqueRef:ff2c84a9-3ea0-6792-fe4d-3215c397f3b0","OpaqueRef:18d16a24-b68d-43cf-69d2-7a5868998306","OpaqueRef:6d180e8a-3fc3-4459-2526-189b389da794","OpaqueRef:2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4","OpaqueRef:4a2b195f-f477-f143-e4db-f96913abdf9a","OpaqueRef:4af3e675-5dd0-08c7-b67a-414e85223d40","OpaqueRef:cd17195a-9274-0b74-bc8e-3f0c916bfbce","OpaqueRef:864a54cb-981c-8bba-19eb-2c76ce406359","OpaqueRef:37fed550-72a4-a8c8-5468-8bc3bfd1554e","OpaqueRef:800592e3-30ac-bc00-4274-f9c23e335d57","OpaqueRef:699638de-d890-04ef-ea8e-5473742ceb88","OpaqueRef:5dc61f97-020c-3958-1531-9d950ebad058","OpaqueRef:0f104484-8054-bb43-0685-27030f6bebca","OpaqueRef:7122efb6-3045-2da0-b503-1524b692a5d8","OpaqueRef:79a22291-0fca-eeef-d23a-1b796b2123aa","OpaqueRef:fc844b8c-44f7-0a47-136b-9fdae98759df","OpaqueRef:539ace0a-c714-562d-f153-ce5df5f92265","OpaqueRef:a714bc2b-93c4-7785-d84c-53e40aaabc73","OpaqueRef:caed3120-c6e2-8d1f-4498-6aa7d966a575","OpaqueRef:aae2577c-a1a7-9646-9bc5-a9c082108eab","OpaqueRef:4bfb1275-7c46-d751-4ab4-f19c5e83bd41","OpaqueRef:1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f","OpaqueRef:96fbe84c-1cce-dab3-c396-bb28962a8aab","OpaqueRef:0b3c3543-7504-c5eb-4673-31e51971670a","OpaqueRef:94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e","OpaqueRef:99fb86a7-2a9c-1f78-7c1d-5dd8507e9be4","OpaqueRef:8dfb37f5-203f-2ea4-597f-7c350f6233f1","OpaqueRef:3f9bb6d6-db4e-b115-a2c3-adf553886983","OpaqueRef:2770c2e9-7d35-17f7-5f34-9814d604a3c7","OpaqueRef:9760f691-5295-ecc8-bf2c-3865249c1f6b","OpaqueRef:a2a09fcd-1313-554c-9051-f4dd1c4474fe","OpaqueRef:4a16dd04-0fbb-e5bc-af88-01046c72c54b","OpaqueRef:9350ea5c-ca28-1ece-9c6f-1c4ab918d119","OpaqueRef:d529b00f-b546-b67d-c50e-f0d216b2ef56","OpaqueRef:1ea042ad-d922-f7cb-90ab-9ac09e011670","OpaqueRef:0d87eda4-f5b4-1c19-ff98-f1bc171afb8f","OpaqueRef:6d3feec4-ad36-040d-b555-8c49b8015bf2","OpaqueRef:4c964b58-b18d-599c-140c-3d7e6fee0949","OpaqueRef:fa09b51e-0da5-a900-4da2-33752ad8a112","OpaqueRef:bebace76-69a8-cb40-82aa-5ecd4b882075","OpaqueRef:f05760c3-46d9-9cf5-8831-330943a33ce2","OpaqueRef:9a9b62f1-2fae-cc0c-03ff-147b35e7917e","OpaqueRef:e39b5c55-fcf4-41de-74c9-a38e278e85db","OpaqueRef:ca111bd4-768b-a624-f752-4d4a51ab2471","OpaqueRef:66ce4f5c-82d0-457d-dced-433bb8b5229e","OpaqueRef:16474184-4484-6193-a7f4-2baa521a56e7","OpaqueRef:cf7a0ae8-7440-c6ac-ef72-5454aadc19a7","OpaqueRef:dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4","OpaqueRef:1c6ae07b-8cc7-3334-d143-40fba15e5d1b","OpaqueRef:26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1","OpaqueRef:38d676a9-1eca-992f-8768-65856d28ec39","OpaqueRef:76efe753-ae98-21ef-4ee0-c06be1ed6bf8","OpaqueRef:7ace0159-c007-b95d-d43e-90af54f7b4f3","OpaqueRef:0511b768-32ca-e60a-83d1-6089ee037abd","OpaqueRef:8b731fe2-d6fa-2b5a-738b-aa1501e2a00c","OpaqueRef:c2e03e88-ade6-a5ff-db5b-b92e0bc2e580","OpaqueRef:627b53af-258b-eaec-feec-9a1cfb5e915d","OpaqueRef:d6b2a0b1-1991-b740-0d48-242d5b3463b2","OpaqueRef:5502ee79-ceec-099c-740a-42e395dac81b","OpaqueRef:b498514f-0f98-ec60-df87-f1feed07141b","OpaqueRef:6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e","OpaqueRef:0cd88229-8eb6-dd98-09cc-8635498afcd2","OpaqueRef:58ac1559-04a8-f7ad-2224-53591cacfcb7","OpaqueRef:d7450039-1e27-7ac8-acc5-a698cb19a525","OpaqueRef:ae095db7-583e-cfc0-2cd3-db791d3b1671","OpaqueRef:8ddf8bd4-4146-aab7-5e60-37b3c59f060d","OpaqueRef:00f9116e-139e-c5c6-e647-308230cc9f5a","OpaqueRef:70787b4c-26d0-f9c5-9b31-1c9e291035c4","OpaqueRef:14ea86d7-eccf-8790-fe68-2cee27f915c0","OpaqueRef:7f355dde-ac8c-9a02-ce96-16a1a08c0836","OpaqueRef:1c6bfef7-d9c9-4b53-4184-c72d5896e910","OpaqueRef:8ae37793-9d90-d55d-bd48-328657eac262","OpaqueRef:4748a78b-fbc6-06d6-9a9b-0fee76a37e42","OpaqueRef:922f39f2-c948-d0cb-813a-8fb675fe1209","OpaqueRef:5e5aa3af-ee5b-3973-2b26-cf1882900d7c","OpaqueRef:ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b","OpaqueRef:ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3","OpaqueRef:d13394ed-05a5-8a53-ba59-20525ec873be","OpaqueRef:c71d068d-24c4-6d68-8439-3078c968141e","OpaqueRef:bceff7d6-7267-91cf-fef1-eaa65de886e2","OpaqueRef:b9a4873c-7e19-ebec-d524-f1d69da5324b","OpaqueRef:a433bf84-7725-f4e2-6f89-31054403dd87","OpaqueRef:e254be14-8fe4-916c-b287-25b8be1a6502","OpaqueRef:fae19164-aa28-38ee-e1e5-a3a3082729bf","OpaqueRef:86907190-69ac-4a19-df3b-6678644e64e8","OpaqueRef:1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f","OpaqueRef:b132a88b-b242-3cf8-0459-4bd858b7dc93","OpaqueRef:505fcb18-5888-5bf2-75be-6235aba2e6ee","OpaqueRef:d5b5a870-45ee-4124-ec9d-3f16ed2c7db7","OpaqueRef:ac809817-a5db-b4a2-0b14-3ba7c0ff2165","OpaqueRef:7958cefd-9fdc-f836-fedc-22f89fd06ce2","OpaqueRef:176db48f-09fe-625d-8d3f-0588f796751a","OpaqueRef:dff728c2-2d9f-e6ff-57ef-a0e31f0927b6","OpaqueRef:7c4df9d1-26c8-8986-35f7-a1ec7f4804d2","OpaqueRef:0a561bf4-9228-cb18-0ce3-7d2a0d302800","OpaqueRef:21d14229-6be0-a401-6580-4ff98d459f7c","OpaqueRef:f850300a-1604-59c2-5cab-0a1380798fbd","OpaqueRef:3c6c94b2-f160-ff62-be39-e917e080f3d2","OpaqueRef:26e20184-1c7f-5596-b456-22ff28f2562a","OpaqueRef:5f5d40d5-5171-dacc-b6ff-497744f2d6cf","OpaqueRef:92d0e454-d08f-fe30-f288-33ac5e9a7193","OpaqueRef:724d860d-c6b0-aecd-97e5-a28c944cf21c","OpaqueRef:5dc23f7d-7008-5d99-0cd6-780fff26f7ad","OpaqueRef:69cd7eb3-9c03-a6ec-1942-77ccfef89687","OpaqueRef:49f55d27-bdb9-ea99-50c4-bab151c7ed0a","OpaqueRef:d687b364-5ce1-9ab4-0594-1568e7962192","OpaqueRef:b433a6d4-aac5-d6f5-429c-fb6e4c3fb586","OpaqueRef:4fe83cfe-641d-099a-ca6d-921f4f3744ae","OpaqueRef:0b33ba31-b80b-e074-7262-65ad91ff9313","OpaqueRef:10d871c1-c065-b472-0fef-42311c39c9b9","OpaqueRef:a8bfecf9-7e65-f0b7-f087-a59845369df3","OpaqueRef:4bf590bd-2137-55dd-90cc-1735a84da788","OpaqueRef:1e34f646-0d83-991e-6d57-53abf105526b","OpaqueRef:ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33","OpaqueRef:57eb64a6-04db-6995-2a99-3eaf96be5263","OpaqueRef:915e4dab-9537-bfa4-fac9-85addfb3eeac","OpaqueRef:4f7a7bae-a4ae-9024-ffd2-3bfe706c266b","OpaqueRef:2ef836d2-b9dd-5a23-c794-2e7589f36be0","OpaqueRef:e0ca9324-e1ad-9179-5282-f7f36641bb1d","OpaqueRef:067511f8-54b7-de65-b4d9-dfb2089ac41a","OpaqueRef:1bb99abf-a34e-2a07-c87a-871871b84931","OpaqueRef:051d2068-cedb-9155-c92d-1233e9fbc3e5","OpaqueRef:0720d352-4b7b-fff3-45cf-860aee04908f","OpaqueRef:1fcbc379-fbbb-f702-d1ba-7158bead56df","OpaqueRef:520813ad-5f48-b68b-da3a-36a944d0a2d5","OpaqueRef:1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d","OpaqueRef:383340ed-7b65-ec60-3687-cd5b9a22dd4d","OpaqueRef:c6cd9483-96d1-5a4e-8272-58d62903ba13","OpaqueRef:c935c5c6-6224-1650-60e8-8fe70daaa5c4","OpaqueRef:d9b34a9f-bd57-74ef-44ca-d5dc42e857bc","OpaqueRef:603d3545-44ef-8bee-7e48-7a9ec1fe0f4c","OpaqueRef:2ab258fa-f9f0-53ca-1a97-e319259e63d8","OpaqueRef:92828369-5a7f-e0cc-ff8a-20ce4e6a182d","OpaqueRef:cf2e8f13-038a-7d7b-5021-c881eadac803","OpaqueRef:ff8c2c53-80b5-03a6-88c0-ced5d925bc2f","OpaqueRef:027a3a06-ffc7-fc53-f107-b8ca78294326","OpaqueRef:76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d","OpaqueRef:bf7f941b-03a6-dfab-5f08-5f1d5e046a8d","OpaqueRef:91b38c06-f1f7-acd5-a6f4-5e10e9decb8e","OpaqueRef:a8accf3c-5e68-c1ad-347e-4b14086a0a3c","OpaqueRef:0298a263-16aa-fa51-84d9-bf231b03257c","OpaqueRef:b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8","OpaqueRef:92424d6e-6c8b-e6cf-52f8-c1ecb18ac162","OpaqueRef:b9b352a0-6f8e-854e-71b3-04d31b6483fd","OpaqueRef:e9d70821-4d5b-c6e8-0769-305ea28819df","OpaqueRef:70a45f35-52c8-981e-b5b4-756e9dd422bf","OpaqueRef:29f5163f-f0c4-062e-38a7-e652c0ed5987","OpaqueRef:fa0065df-12b1-d909-9f18-0ee0e5905322","OpaqueRef:0075f8e8-9cd8-3a4f-89e8-f53ff0121590","OpaqueRef:1cd93736-a017-b50b-a7ff-f84557f73b64","OpaqueRef:52e94cd3-f9ef-225b-9d23-133e521e39ec","OpaqueRef:43bd2f40-5b02-5f5f-f2de-3355ce64f08d","OpaqueRef:fa8c8b9e-82c2-1edd-0621-58b876ecb786","OpaqueRef:25efdd5a-5572-0245-6f76-edd4d8ba87f2","OpaqueRef:43f83df9-8b01-dd53-da07-19c763c45316","OpaqueRef:b73723e7-74ed-dae5-a160-a31e2f96f64c","OpaqueRef:3763d099-4a3b-3905-7603-8e5a98dadcc6","OpaqueRef:7a01d196-5bf3-d888-ca53-f7c308d79daa","OpaqueRef:5b8ed78a-2c12-c8e0-c706-c960dcac0e02","OpaqueRef:f5e84d5c-9173-a902-ca07-aaa980e78e7a","OpaqueRef:f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088","OpaqueRef:da79116d-658d-77fa-9595-51e744744bd9","OpaqueRef:7b46c171-b1db-a323-3b76-457ea95372d2","OpaqueRef:363f935d-b9b0-96d5-6286-c7c611a0a65a","OpaqueRef:58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f","OpaqueRef:2072d2a6-0563-826f-693b-1d3d46c4d4ed","OpaqueRef:ad8c841c-d7b0-29d0-bbfc-e102b0cf29db","OpaqueRef:ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c","OpaqueRef:fd67acf4-c454-2308-703d-b1c548829599","OpaqueRef:531b14e0-799d-158b-2741-b0722c44ef81","OpaqueRef:8deb8400-477c-d1ed-5e43-3a57cf19fc18","OpaqueRef:bb254b62-2ce5-d18a-ea89-b9951d43540e","OpaqueRef:dac42fca-3f2b-9f12-984c-094ee89b8a3b","OpaqueRef:bee385fd-db51-c95f-5dc9-e0cb27058fe4","OpaqueRef:898a10e9-4929-667d-1f69-6084d82f95f2","OpaqueRef:0093bc43-35e1-4d14-5ae8-0d48a7c7696d","OpaqueRef:8e640d08-58a8-3220-9ad7-2f6ce7ffcb54","OpaqueRef:f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3","OpaqueRef:4cf2b236-677b-9ed4-7466-d0e1337a0549","OpaqueRef:b3db5cf5-cf31-a92b-edbf-05fe326e9844","OpaqueRef:e3370dac-0910-8f7f-a68c-aa87ce861519","OpaqueRef:68d3594f-230f-4fb6-5177-fd760bca1be6","OpaqueRef:6ad64869-f5c6-00aa-b2b8-8281cfd24e88","OpaqueRef:bfd6aaa0-e3c7-2b73-47c5-06903a2d09bd","OpaqueRef:dc3df6cd-f17c-73a7-b27d-eb95a8be35ae","OpaqueRef:ab7a8ddb-0a66-957e-b67c-2623919816b3","OpaqueRef:70178e57-b50b-900e-a105-0b50d5961ad2","OpaqueRef:84facb10-a76d-d587-f1b4-fd1bfffbbd13","OpaqueRef:f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f","OpaqueRef:5e271507-05bb-a4b4-2aa1-45a1d678a3c3","OpaqueRef:9b129852-5a6b-938a-6657-d7fb8c0fd1d8","OpaqueRef:1e749289-18cf-7c15-dfef-7c563ac409d8","OpaqueRef:182ecb35-daed-9ee8-efc7-cacab112b589","OpaqueRef:13cd1c58-7c1e-1ab4-65ed-9ff82b888688","OpaqueRef:8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0","OpaqueRef:a06fc2d3-81c9-76bd-b9b3-d00973854b22","OpaqueRef:29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2","OpaqueRef:941b5182-310c-b1c2-fbf4-1409241add9a","OpaqueRef:975df00f-053b-2fe4-70ce-41b80b2814f9","OpaqueRef:ca855242-855a-9952-32db-65969a8ce3fb","OpaqueRef:bfdf5c96-6ada-a5ef-cc47-ea345940662e","OpaqueRef:f825b844-c7b4-2900-cf4a-5cd059d26dc1","OpaqueRef:1681d655-5c34-3b05-1c48-771660b0f3a6","OpaqueRef:53ca7741-71e1-66c1-c42d-6d9351b41551","OpaqueRef:39bad4e7-597f-2ecf-93c6-39b8d945de5d","OpaqueRef:a1421191-fe98-3281-a792-d201a2de2bf6","OpaqueRef:1f9dfeb1-7d99-1409-e6eb-d9522e1ca3d6","OpaqueRef:d535938f-a852-c579-75fd-f7064065ecbb","OpaqueRef:d91aa452-182d-736b-a240-4414fe355a93","OpaqueRef:7d45ebaa-c032-5209-010f-bda83e9995c0","OpaqueRef:13657521-3100-32e7-3d38-a1c0df842c77","OpaqueRef:4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259","OpaqueRef:55377552-76fe-e589-d4cf-02f64f49f350","OpaqueRef:d36bf25c-cffc-3785-e9a4-1d6dd826cd03","OpaqueRef:97b2ea1f-c272-bbfa-4e1b-ed567d0cc9b3","OpaqueRef:cf9b90c9-439b-c33c-c4eb-86e8b1bf4157","OpaqueRef:53e3bde4-ef9a-5933-62c6-89a992f399b0","OpaqueRef:216b0366-cd42-24db-57b1-3c8fce70e4ba","OpaqueRef:5beceb5c-5880-09dd-3eba-d5133d463f9b","OpaqueRef:7bd495ef-abbe-3363-4f68-64a70eed83eb","OpaqueRef:61fbb0bd-b453-3369-98a3-53f4f8a7fe6c","OpaqueRef:00056679-3372-9b8e-6488-10d423edb0ad","OpaqueRef:64067282-0137-c32d-3ae4-7b20b6a93ad1","OpaqueRef:97015ed2-cf9c-9ff4-9d34-b1ae9a377788","OpaqueRef:c492097b-20fb-0584-6559-893d4d35c82d","OpaqueRef:de3c3005-8901-9213-2c61-45e6d489c801","OpaqueRef:0fd4e192-6082-738e-c2c5-27cf2cb5f467","OpaqueRef:3f4867e1-9401-bc2a-a260-5561bfe8d08c","OpaqueRef:3ad57875-8d33-5adf-7184-24f4df2b6981","OpaqueRef:5c07d45f-d9f5-207e-1e3e-70c0b5abc69b","OpaqueRef:73ba289d-8cab-51d5-a8f6-ae42be46b61c","OpaqueRef:88447749-f966-bae0-a649-ad12c1391cc2","OpaqueRef:9799e20d-f5ed-6371-1fd7-6ad3fb1df729","OpaqueRef:b06ba59a-e556-7f5c-902a-871a8004c149","OpaqueRef:6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2","OpaqueRef:522142a2-c5ce-4095-85b3-13bf2ca36175","OpaqueRef:2fa043de-5e00-c856-7ceb-0b0a266f0a4c","OpaqueRef:7356e67b-7806-3749-5459-4409094561d0","OpaqueRef:e18acdf2-b7ed-9d85-2aad-10e4a767b62e","OpaqueRef:81ee6b76-da69-18b4-18b1-f4e09aa1b119","OpaqueRef:61080452-d30d-cfed-7985-400322d30d53","OpaqueRef:bb7587c3-a0d4-46e4-af05-6ed1cc33d23b","OpaqueRef:1cf6f512-a2d7-1189-1e32-3a1e58c1e66f","OpaqueRef:a04e6272-743e-809b-dc4b-a2edd6fdeb0b","OpaqueRef:5f3a7f4d-29e6-df00-2bd0-6a16b0fef414","OpaqueRef:6ed0eebe-e588-e5da-a6c5-c24353ce5d42","OpaqueRef:e46476eb-f04e-f11e-ea3c-88dbe418ccb9","OpaqueRef:dc84c131-adf9-d460-4988-294d88b46924","OpaqueRef:f559123e-c887-6ab7-49cb-675b315d69d7","OpaqueRef:9de70f7b-12d1-6625-5970-894335e62431","OpaqueRef:7c2f2761-86e0-d176-8791-cccfe25d8700","OpaqueRef:e4fd9189-1c6e-8b2d-690b-8f7923b2477e","OpaqueRef:1069a4f0-17e8-cde0-bf04-ffa08d2878ea","OpaqueRef:3d8acc2e-3bf1-9245-35dd-493184d88770","OpaqueRef:c41cce49-6fcf-44c2-1c59-99d127686bff","OpaqueRef:03c65989-d970-28e1-2d72-8cf1ffb06a95","OpaqueRef:2a8ae027-e709-28ac-8de5-56adc284daa6","OpaqueRef:3eded99d-19e8-b6ca-435c-7b6f2b220b3c","OpaqueRef:c58d6c90-98ef-d44f-f4d4-47bbfebf6a28","OpaqueRef:3a08550d-abba-d9d6-bcf3-df495332dc7f","OpaqueRef:396ee7a7-5e5c-9399-d89a-427109e6ab21","OpaqueRef:cfbc0c25-0514-0a40-1c57-9e063667d33e","OpaqueRef:a6d34497-1418-7a05-f792-60f8cbd8f7c5","OpaqueRef:6fcc710b-6217-2c38-f2bf-2455728b2b0d","OpaqueRef:805b2422-565d-0957-0898-5d5a078ee501","OpaqueRef:3d022c5c-d53d-333c-706d-c175777da30c","OpaqueRef:09593fa1-1b87-1d23-8e61-bf79b93236fc","OpaqueRef:3cc87704-357e-0ea7-e918-dcae6f73fa8d","OpaqueRef:49bc2875-5acd-548c-8823-bd2c6c2322d2","OpaqueRef:ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae","OpaqueRef:57fb16f4-51fc-7798-1845-070ca26ba746","OpaqueRef:544ea348-b989-8d3e-6042-13999626c5e0","OpaqueRef:34c8cdd1-6c69-506d-2e10-1a051d5f7d60","OpaqueRef:db6de8b4-bfd5-c3a5-905f-94106bb5a2ab","OpaqueRef:c1207e93-3ffe-9166-4ff7-80b763788417","OpaqueRef:2804a382-939d-876d-c50a-dc18d199bfe8","OpaqueRef:4b182675-bbcd-8a69-3671-5803cb22b481","OpaqueRef:e01a098d-e8fc-81fa-764e-c07a342d219a","OpaqueRef:2036d54b-2179-ce69-a922-9b2d5cce6916","OpaqueRef:58e3edff-51a7-7143-020c-11e3821c18cf","OpaqueRef:283982da-ebce-2cc4-faeb-4bee137761bc","OpaqueRef:f17f15a8-882f-380a-1e75-7074e4e51e1e","OpaqueRef:d6271e34-14a8-85dd-28dd-f090b63ff588","OpaqueRef:499f5734-a8d4-4c55-83af-f0b1e2a9d67e","OpaqueRef:89e757f3-4619-1fe9-1b1b-3afdc986af84","OpaqueRef:62801603-a12a-b8ae-eb7a-0890725c7310","OpaqueRef:8673c2e3-429c-7599-35e6-e9a804892d2a","OpaqueRef:3ee06801-74e6-08cd-b237-7636668ced4f","OpaqueRef:af9bf6e8-720f-8eba-b583-5ee68d14de90","OpaqueRef:a212b9b8-aa8a-6243-180e-4270a46cec2f","OpaqueRef:a1492f6d-0469-f57f-074a-88453672a2de","OpaqueRef:e756d67d-3c2b-a489-3c3e-763748f886e4","OpaqueRef:39b6f8c8-bfbf-b629-5d92-6594e516730a","OpaqueRef:c18535f5-924a-5a11-7522-c8ba88f23eac","OpaqueRef:acf9e287-4110-4a5a-c753-7925bb43678f","OpaqueRef:d7435e71-c22c-3fdd-bbcf-33849cc039c3","OpaqueRef:3057ba41-6ab0-21bb-c4b9-2a53ded43c5a","OpaqueRef:e69c0e91-d962-f102-9200-5b00d7ff495a","OpaqueRef:784956f0-eb8f-e687-118f-5ee8fabc47dd","OpaqueRef:d0e2be89-4c37-3974-149e-c06d8358e0be","OpaqueRef:c317c9dd-000f-61e2-91f4-cafc36cc3f65","OpaqueRef:dc719910-a701-5800-fe16-18e3cb4fc00e","OpaqueRef:0dfef1da-7988-b6a2-0752-20b8dfcad6b5","OpaqueRef:a7f5635e-754b-2c47-0182-b2cd6eaa6a4c","OpaqueRef:21c41bf0-8c5e-b6de-5dc7-f71cb751a430","OpaqueRef:37548ef6-abc2-9f49-7fd5-efe65a5b5448","OpaqueRef:5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044","OpaqueRef:6682964a-92f7-ece2-30b1-583be0f69b15","OpaqueRef:eb0f1687-b443-2873-e3c5-3464197a2a50","OpaqueRef:ca439f57-3fa8-ee93-f2a5-5d4f72cbb907","OpaqueRef:28069750-7807-2fa6-9bc2-bae7456f5de9","OpaqueRef:450af311-5669-e4c7-6ca3-b3350172eafb","OpaqueRef:9fb5a1d6-e53b-24af-bb7c-49a942f0bc65","OpaqueRef:ad6b4de5-bb53-c27c-f34a-033542cbcf61","OpaqueRef:cf8f0a82-e845-5f00-68b3-d0905d31e8be","OpaqueRef:fc7cd54b-2fde-4fe7-4caa-e152930fed06","OpaqueRef:d619c5a5-074a-a015-1c1d-a0a0e62bfaa5","OpaqueRef:84d71586-5ce8-2364-c74b-0017c93b82b2","OpaqueRef:0e28a706-8960-58a7-4f9d-c3b0eea64a0a","OpaqueRef:e3637139-7f57-56b3-b8e8-4fd736f11588","OpaqueRef:164a66c7-e0b0-7fd7-ccd3-d13042353c78","OpaqueRef:88fc5a8b-e5f3-612f-7a32-e5a651abd04b","OpaqueRef:0ed8495c-b53e-7951-d041-14df9605e6f8","OpaqueRef:88f8cb5b-b92e-0ab4-307d-2ed4ea447475","OpaqueRef:e7d108ee-2082-98c2-acb6-5884f39f3056","OpaqueRef:62084664-4e15-5ca5-99eb-00007ed70717","OpaqueRef:f2df7036-f418-a415-ddca-d31ba6ff611e","OpaqueRef:4b368ad8-3eec-31b3-5fb0-d1070507cfd0","OpaqueRef:b7db64ab-97ce-4dfb-45d7-f505756fe4a8","OpaqueRef:25d4aaa3-582d-7e6e-eb43-8fba9c42568c","OpaqueRef:ff776240-dbd0-9ef8-f34f-42c85cf01b3a","OpaqueRef:559b520f-dcef-e6b3-6a21-3a74d84d3fa8","OpaqueRef:1a37ccfd-f500-bd50-bb25-f20411bfbb35","OpaqueRef:086121bb-2bba-06e9-bab2-6b7414b0e4eb","OpaqueRef:2fd85a90-74c9-15e6-d4f7-e59c7f584ac4","OpaqueRef:54cb0e64-7459-04bb-621b-4f16f42ba21f","OpaqueRef:9e2e9082-8361-adb3-1e6b-51178368e9a5","OpaqueRef:f1ab04b2-6571-fff1-66c0-720ca6c50bfe","OpaqueRef:616109ba-d73f-ad1f-a4ac-4a1454b7b742","OpaqueRef:8295c108-ca0f-bc2e-1d77-d580d9dcbdff","OpaqueRef:65e61767-fa64-53ff-0056-6491eaec7d1c","OpaqueRef:b2dc1fd3-b84c-d045-efe6-174954f53ad0","OpaqueRef:a534c226-3cce-06b6-3a28-cbf339c0e385","OpaqueRef:a576f048-226e-b605-b15d-f388fd903210","OpaqueRef:676b455a-f9eb-78e3-a1ef-a1ea437f6110","OpaqueRef:3d4411cf-b855-6140-b1cd-1c6b7a0ebedd","OpaqueRef:a0184446-8631-4833-3651-61ca4293ca60","OpaqueRef:b277f808-66e4-fd82-2300-bfae51e59679","OpaqueRef:babc2b36-7a11-3b3d-03da-fc3130f49a35","OpaqueRef:2a3d6942-c2df-0472-5241-52530708b8c7","OpaqueRef:7e23cac0-90ad-45ba-9a62-c7b6a6e4002c","OpaqueRef:b8f9b23f-65b1-75c0-289b-e6e2872ee81d","OpaqueRef:2adc8291-5288-6526-87a0-0b15ec4ca4fa","OpaqueRef:01844316-a78d-e6f9-a7b7-53a939235f5d","OpaqueRef:b1d61197-b0bf-cb30-2120-627c956a97f7","OpaqueRef:74ef5702-8a42-a7a6-8951-a28ae3b64197","OpaqueRef:ab2230c7-8d4b-357d-6a26-62f7c9b0bb27","OpaqueRef:ce3646e1-704b-6b7e-f468-45a009bec12d","OpaqueRef:c911cfca-5100-8446-b631-2d6f3861350c","OpaqueRef:f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4","OpaqueRef:883d4710-6475-244f-cce7-d17282265fdc","OpaqueRef:56a2f957-6b1b-7d8d-00f6-931d4574f63b","OpaqueRef:bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f","OpaqueRef:ba6f9682-ea22-caf0-ea6a-cfad6774390d","OpaqueRef:04ac5338-b19b-6833-ed3c-b992d6ef8328","OpaqueRef:917258fe-6427-e960-98e8-9f3bbd88bd22","OpaqueRef:2de23583-b3f1-6e39-4bd9-4c7bc7afc977","OpaqueRef:46c7e8d5-56f3-060f-2995-2d969d216c2b","OpaqueRef:06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5","OpaqueRef:c2bc934e-8ece-de2e-3288-7ccbab1e257d","OpaqueRef:e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a","OpaqueRef:3b5deb71-ec32-2485-4913-089fa04f1ace","OpaqueRef:c7b868fb-53dd-4ff6-9b83-fe096e910d82","OpaqueRef:3516a06e-5a67-7f1f-4c83-40b3d7e914f0","OpaqueRef:439dce99-b067-9c88-7a0a-06e581f8f502","OpaqueRef:8e7a8bd9-9ac6-a612-477a-12c33c6af2d3","OpaqueRef:2cc96f79-52aa-dafc-494e-5d04eb63b66e","OpaqueRef:2966c4db-3b8e-7257-734f-0969cf20819d","OpaqueRef:312ca834-68b2-6c0c-7608-9fa37ab92a80","OpaqueRef:de6644f5-642f-de4c-0a6c-643305b2d412","OpaqueRef:532b0c67-7dc7-8ea3-2e90-ed2db7b2a1db","OpaqueRef:b36dd591-9707-22a9-dd2f-f4ace0f16c2f","OpaqueRef:73dcfb11-02cd-8963-408b-dad8c5e273f9","OpaqueRef:4422e4c7-9256-2554-f5cd-20e747e332de","OpaqueRef:18dad7b9-c57e-c98d-7d17-f0bf1d7e06ab","OpaqueRef:412f975b-5a60-92d0-a171-2bedf499c0f5","OpaqueRef:4e914b35-ddeb-12b2-31fd-e2fbcbec010d","OpaqueRef:588d746c-9967-8e54-df7e-a825bc64f73a","OpaqueRef:e9a7fba1-deec-3478-2098-26b97828c750","OpaqueRef:93dea749-bb50-7546-5ecb-90cfbf26165f","OpaqueRef:b37bf5ec-05a4-e2bb-1586-d973d208a2f8","OpaqueRef:9d51a9e7-b720-b88e-5240-256b52701685","OpaqueRef:a00ac9c0-8960-1e84-c638-c9858dfa4101","OpaqueRef:0c82bef6-ba72-0bee-b924-84feb84b2e77","OpaqueRef:6753d0e3-8e17-9f9d-cb5f-9642c2b7685d","OpaqueRef:d70b794c-05dc-77a5-b720-51a905de3f2b","OpaqueRef:0462f07f-cd50-abd0-7965-0ec55f5a126b","OpaqueRef:a28dd0cb-fcd5-33bd-7657-278e5f653471","OpaqueRef:35767a4f-af9a-af62-5f51-ed250f684d25","OpaqueRef:2605b766-9cb9-cdb1-53e6-2431e711af44","OpaqueRef:f5b86d13-b503-2c7a-83cc-b54896afb752","OpaqueRef:266d1cf3-ea34-44ba-fc97-cf4cd876d7c8","OpaqueRef:2cdb0f4e-685a-814d-03e5-19c4fbe5aa64","OpaqueRef:a2f2b2b8-188f-f022-69bf-fa443d89bb58","OpaqueRef:a4c9dc80-0070-0067-a1d3-339b5081adc0","OpaqueRef:f6184e4a-0be4-97e7-6db6-bced99fcceff","OpaqueRef:771f7157-33cd-a8e1-f5a7-ae23af63c750","OpaqueRef:7f545d78-e772-030f-2e95-7d3b998d3000","OpaqueRef:b99da77a-522d-4bff-9013-ae981fceda83","OpaqueRef:0a01091f-7913-54d3-94b5-3ef26f90b0f9","OpaqueRef:dfc8a1f1-60c9-373b-c6a3-56c0712754a7","OpaqueRef:e3e174f6-5c33-6385-bd9b-09213a73e701","OpaqueRef:f1fc3e4c-3f63-876c-f667-2c06a3321e7c","OpaqueRef:3230d646-65ff-59d1-0400-5f58231c0664","OpaqueRef:68130225-5eb6-b36c-43f5-c81acaba8b68","OpaqueRef:9ad29a74-1eec-8937-697a-ba3679e4f48d","OpaqueRef:3fa0a161-a6ab-4adc-3749-2aab29e2b445","OpaqueRef:1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e","OpaqueRef:924d34e6-51df-0ef3-fdd7-065a11af80c4","OpaqueRef:ccc6e989-a50d-3530-743f-d13e7f05e5dd","OpaqueRef:bbdc09c5-8729-4aae-9945-66b292cf2aa1","OpaqueRef:62c6badc-ea63-3832-3641-cd0eccca0304","OpaqueRef:18c1913b-2356-df02-11ce-ffd2da0e4170","OpaqueRef:e522fa0c-7c50-cc59-c88d-0dedc9aac2aa","OpaqueRef:a5bca0b7-88eb-7892-b1ec-e328146be11a","OpaqueRef:57003b7e-6b62-44ed-9efa-d02a2c73946b","OpaqueRef:58fd2438-7368-a4de-3b67-e5ad53708171","OpaqueRef:baf1360e-2dc9-be3d-08bf-252994e78ccd","OpaqueRef:8618ece2-3298-2490-19dc-2e951f388f1d","OpaqueRef:acfb9201-52d6-3881-04f4-83ae8376300e","OpaqueRef:fa7a9290-f86a-2185-3c2e-9a4c5ad746ae","OpaqueRef:092b2548-6da4-7838-9b3d-af0860032580","OpaqueRef:4cfbb76c-adc2-c543-66fc-b1239cc2674d","OpaqueRef:a8137b60-e684-3a89-3c7d-70365d9f8465","OpaqueRef:edd8481c-3712-064c-e444-2a1f20a31aeb","OpaqueRef:566ee717-dd27-c672-e4ea-2f0796acd117","OpaqueRef:4df8d39a-3fda-a201-f792-c727dd2ffa60","OpaqueRef:0f5f27b8-5098-237f-e2b5-14c9512fb0d6","OpaqueRef:360c10c1-5edb-2dba-9e8e-f1440e9a948c","OpaqueRef:4950f5c0-e772-3c03-61a0-6b00f291448d","OpaqueRef:ad699ad2-4125-fa0c-2869-8b6640360731","OpaqueRef:fa8993fb-524f-eb9a-641d-06b2099ecb82","OpaqueRef:a973885d-511e-de2a-00ef-18ed6acf3021","OpaqueRef:73e1bedc-0afc-64a1-ac4c-a58f118bbdc6","OpaqueRef:efb93f2e-bf72-db7b-d36a-1be03c962cec","OpaqueRef:0ec88acf-cbb0-d4d3-7c8b-f5f320e6f0ec","OpaqueRef:e8872a7a-d9f2-2a9c-1e4e-ed2e94612f6b","OpaqueRef:19dd9241-f613-057e-d933-dfc254e20a6b","OpaqueRef:5312dde5-afa4-fafe-a3a4-a9729b47b80b","OpaqueRef:ad2b02d4-5928-4232-df0e-a7fdebd8fb62","OpaqueRef:f2370df8-242f-0ca6-ec92-868200d68c34","OpaqueRef:eaadf2fc-0fa1-892f-b20c-e3b8ac502e6b","OpaqueRef:ed243ad4-497a-52e3-d46b-945f2e4156f3","OpaqueRef:4bb206e0-df39-3bb0-2402-e4d584e6861d","OpaqueRef:ef6fd636-89c1-1e1f-157f-284e8a450324","OpaqueRef:5ff8b980-e213-e1f0-dbda-b5abf2bbe72f","OpaqueRef:c7734155-0a75-ac54-6f7c-74a8da933455","OpaqueRef:eadc7ba0-7efe-5e4c-7b78-482519be7522","OpaqueRef:25927722-f11f-2805-9006-8fa441b22745","OpaqueRef:804810ef-bdde-04af-addf-31ac6e8eb8ff","OpaqueRef:f8d1620b-4d3b-ed60-af3d-6a13a59d65e4","OpaqueRef:325bbd68-d003-fcb2-bfa5-3745d5c7d4ef","OpaqueRef:f5b632a4-7a1a-576c-e9cc-0ba84cf1071b","OpaqueRef:8b3775f3-de8a-7191-05be-d652c36aa494","OpaqueRef:fae90cea-ef53-bc8b-93d3-c0c48384feff","OpaqueRef:6e3cc91d-fe57-6857-c385-343d09c1a113","OpaqueRef:710cfeb3-2a8d-27ed-c208-78f2db5f79a8","OpaqueRef:06c9a83e-f5d7-801c-cef9-f564eada350a","OpaqueRef:3acba506-ce1a-b39b-b637-3731b50880e9","OpaqueRef:8570df6d-9f81-8bc6-00ff-4c6c1f84def6","OpaqueRef:4894cd8b-7d71-407e-2852-1b7f4aa166cf","OpaqueRef:311d925a-6070-271d-a724-0948552a654f","OpaqueRef:44d764dd-95db-e4d9-4cf7-1250f3ca601d","OpaqueRef:937b2b79-813a-a286-cbeb-da09e3cf4c90","OpaqueRef:44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a","OpaqueRef:ab3a2fc2-a70b-9122-8c6c-a51f7c11f438","OpaqueRef:18c32fa8-b18f-6a28-5b40-12f9077d7661","OpaqueRef:92967fef-88ab-15e4-f16c-9f042b3191f4","OpaqueRef:a3f5b9a0-e36f-41d8-65dc-8f7bd095293b","OpaqueRef:9986f58f-773c-c701-6b97-7e99b0135124","OpaqueRef:d450902b-de9f-7867-c98c-f912e6a80cce","OpaqueRef:7936813a-24d4-e749-f89a-dec7286a0b99","OpaqueRef:81239256-3acb-c6e7-b689-9eb4e54c9956","OpaqueRef:745095db-fdd8-7025-f9b3-839b0fa846f9","OpaqueRef:7187f8da-4c69-cc67-9718-1f98b825c1ea","OpaqueRef:601664bc-64ea-312f-6bc1-543ca1a0177c","OpaqueRef:729d8740-7096-6a5c-49dc-6c4cec96500f","OpaqueRef:d4ab22c9-f134-2607-284a-56381333719b","OpaqueRef:2a06d13d-ff22-2dc7-98a6-a97c7c723481","OpaqueRef:a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44","OpaqueRef:a14d9994-ac84-07cd-e0c3-621d7c92f0aa","OpaqueRef:56bc2594-ff11-2fa7-8f46-18178bd1010e","OpaqueRef:396bfd0b-b63b-449b-75e0-f4998ed9ea1f","OpaqueRef:7a90825c-43d6-122c-0805-408ff98a5064","OpaqueRef:af48eae9-9c88-9a3d-e57a-46250c33abf8","OpaqueRef:174af546-476b-1579-44ef-07346dbbe4b1","OpaqueRef:2aa40daa-f640-4198-a8b2-20fdfd44947f","OpaqueRef:7555a731-bf5e-2494-cf68-90a0d7594b06","OpaqueRef:c3ae01b1-a370-4ec3-d91e-4d8533a89f86","OpaqueRef:edac34a6-33d6-77bb-28f4-420479c713a2","OpaqueRef:4210bb3f-296a-873d-f592-9a9cf531b0b2","OpaqueRef:bcd53d79-34a2-71df-29e1-c7e72dfca15e","OpaqueRef:7762becd-462e-6753-2b38-d70dc62e2c29","OpaqueRef:3f2d95ef-f35a-fb7f-ac83-1e31d28eb587","OpaqueRef:79e264ba-b809-161d-44cf-f628b44dea1a","OpaqueRef:2d6b6f99-d4ff-f561-6f39-1a2361b296b5","OpaqueRef:57b4a7f4-2b31-e7dc-3698-cfc7ab53d6ec","OpaqueRef:b6e74e20-a86a-c58b-67e6-8d481d0309cc","OpaqueRef:0d2542ab-7612-5824-4c0b-a77676fe1df9","OpaqueRef:eb56bf07-27a0-6d21-b864-90d65355a7c6","OpaqueRef:a9077c51-15e4-6c48-46d6-b37841c7edf4","OpaqueRef:7b14057e-435b-da4a-f335-5710072124bb","OpaqueRef:a35e33f5-26cf-7f6f-7bee-2e69c34448f0","OpaqueRef:d5c12717-98ae-ea62-287b-ae5de38e2c4b","OpaqueRef:b7b71954-9351-702b-765d-1e3757e2da15","OpaqueRef:9b1c0f58-1625-a13d-413a-5260b57607ca","OpaqueRef:ad0c4088-5db2-3676-22ca-b679662173da","OpaqueRef:d83d3500-e310-848d-ba03-1601caced032","OpaqueRef:fe5d5a1a-b9ae-a0f4-2d61-50416f161d60","OpaqueRef:a95d21fa-7e04-1468-b0dc-27d81e39c09c","OpaqueRef:37f9a250-fd67-56db-e2c1-7f7c7abfd9fb","OpaqueRef:a5ac4a15-20df-40aa-1d01-c668e8746d7b","OpaqueRef:93340db9-eacc-0e12-9151-854745d49cf7","OpaqueRef:9dd43118-a078-1317-8a87-83ebed088133","OpaqueRef:63b9ae45-0e59-c1e6-d3dd-f596860071a2","OpaqueRef:67af93c7-dfb9-98ce-ccbf-80fb7e828e27","OpaqueRef:23af0178-71be-1c09-5f09-4eeb59279dec","OpaqueRef:738acc9f-a221-a9c7-c008-4f324a609677","OpaqueRef:6467bf45-4441-2fb7-299d-da6dc598310b","OpaqueRef:5cd9ce80-b26e-54b1-0dfb-07431f9fde11","OpaqueRef:ef373d6d-ccef-defc-69de-d76a06ec27ff","OpaqueRef:dd9035db-7349-697a-84aa-6aeef6601c43","OpaqueRef:a1f5ef8e-8116-2ead-ce75-4ff9cdeb6fbe","OpaqueRef:c614ec0d-cd31-33ba-21b3-43a6c498d0fc","OpaqueRef:34e576e5-27b1-46b3-bf30-25a663835fec","OpaqueRef:0620c7fe-5acd-626f-cd9d-79997b854a2d","OpaqueRef:f6607652-9394-52ba-ced3-f360b1257e6f","OpaqueRef:5d76223e-2db4-b433-f8c2-cb2a5d864efa","OpaqueRef:27378730-81dd-d327-639d-17495c264bc0","OpaqueRef:f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103","OpaqueRef:4d21470f-106f-4e87-5109-1054f40a15e1","OpaqueRef:8cbe8380-7d8b-e296-35f5-7941ad540728","OpaqueRef:26a2c50f-a17d-dea1-7046-e09d4e4beb2d","OpaqueRef:95d99f45-12d3-b0d4-5b95-3cf4e910c7c1","OpaqueRef:a954a18e-5251-f3c7-1bcc-0a7e3e532d13","OpaqueRef:b2bf107a-c001-a3f5-0f11-d9b414b636e9","OpaqueRef:d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d","OpaqueRef:cfaaa17f-391d-2412-ccd2-afab25ccab6d","OpaqueRef:bd37900a-e6b0-90df-dabf-871311560070","OpaqueRef:d237f558-5bcd-610e-0028-4fe71d0ac595","OpaqueRef:703ca7dc-8dcc-6df0-2473-7337caa1c17b","OpaqueRef:bac565df-939b-c536-dfc4-35ea64950ad1","OpaqueRef:d19eb620-7260-c930-6729-682529ab1d12","OpaqueRef:1ee62327-b580-693a-9635-78d27050c1b6","OpaqueRef:657ed104-a6cf-c0f5-1813-48f0bb17da4e","OpaqueRef:01a743e5-a3b5-f318-7228-4ce8fbcc6662","OpaqueRef:019dc5fb-c3ad-90db-7e97-160d3fcf1970","OpaqueRef:70276941-c1fc-66ff-97b9-6a2f0e4417c2","OpaqueRef:fe6b159e-02e4-9220-217f-f7530ac32810","OpaqueRef:765c29b0-1ca4-48cd-1222-4eeb6655a7d7","OpaqueRef:36d74e5e-a510-68e7-45b1-ad0a7c5f47c1","OpaqueRef:6d0a3227-0550-f146-7aac-34259c56d99e","OpaqueRef:86989975-8b09-5f82-f068-64f59f226978","OpaqueRef:dfa26a90-9ce7-1147-7ddb-d79dd9d9c105","OpaqueRef:e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd","OpaqueRef:9c4cc775-613a-fa97-0912-aa44311671b9","OpaqueRef:ebb0b010-c619-1fcf-2519-a386d57161bf","OpaqueRef:96a4dd40-ee88-1987-3286-55c08bf66316","OpaqueRef:de4a5cb5-c8d9-3319-92bb-a0a0f560067e","OpaqueRef:9c0443d4-538d-c2ef-af03-55f9e033f6b1","OpaqueRef:0e630687-91e7-fb14-32b8-d7813d4dd5ac","OpaqueRef:024ec9db-e7f1-de4f-23be-6c3e46f8a797","OpaqueRef:106a8006-8e4d-000a-e85e-5077503d891d","OpaqueRef:4eb027f0-0349-99d5-83ee-4d00063e9a62","OpaqueRef:51a0170c-4df8-88fb-62ad-a85085484604","OpaqueRef:dd56ce4e-8a5f-0776-a0ba-682b1dda3b84","OpaqueRef:795faa64-e21d-c19b-a175-7c28d7af1935","OpaqueRef:eba43944-c9fd-a3ca-d20c-d39c09923eeb","OpaqueRef:ea191445-996a-32e0-33dc-2819c43657a2","OpaqueRef:5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a","OpaqueRef:eb7f2515-ab28-d9d3-17eb-285a28545189","OpaqueRef:621bc530-1dd3-dea9-a82e-498f86b5664a","OpaqueRef:2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b","OpaqueRef:206c900b-40cd-e97c-ef4d-1f20a3d67e1e","OpaqueRef:9366d110-4c7a-e528-014c-8cfd1bc735bc","OpaqueRef:2d30096c-51e6-487a-b95f-5d3b49e0922d","OpaqueRef:29ccccc0-78ea-f639-1829-f5579b6cc3fb","OpaqueRef:6979048a-de08-4e61-feb6-b5ad950b3b88","OpaqueRef:17c2c3d4-6525-49ca-28c3-efc752410e1c","OpaqueRef:8a499ea6-d0bc-3218-e271-c5507d8f8a96","OpaqueRef:1ec637f9-4157-5b26-dabb-31f3331c2959","OpaqueRef:b57b8c50-f2af-943e-a514-8340681aaaeb","OpaqueRef:c99755dd-030f-7f04-48b2-eadf25ecd92d","OpaqueRef:dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f","OpaqueRef:8fb7479c-f838-e29b-4693-651f31819f9f","OpaqueRef:5a960d88-c30e-3aaf-f79c-e58803f4e544","OpaqueRef:3561ecde-dba0-fb56-62b0-1a6101833aca","OpaqueRef:dc25c20a-f553-ff0d-b49c-ddb96d8e2e61","OpaqueRef:795b843c-c4cd-3690-a224-e36e687ef07c","OpaqueRef:43572bd0-288c-6290-e52d-9f12253f662e","OpaqueRef:e73ccdb9-0003-bcaa-8576-fd587f6abd36","OpaqueRef:4a4afbc3-0b2c-f5f2-6967-6afb51cf903e","OpaqueRef:f52942a8-5ac5-2c56-c42a-79d9c3ec2c82","OpaqueRef:6113a2d6-4c9c-48a9-dc31-1c7b590e3cde","OpaqueRef:3fdd414e-97c6-a7a2-c297-871f5f05ee3d","OpaqueRef:a00e1125-aa6c-2a9d-2cef-3000e5357ced","OpaqueRef:973b22d8-c0b0-834c-ff70-30cdd424d1d8","OpaqueRef:207a7572-567a-8900-16f4-41f9c102bdeb","OpaqueRef:50dc8d5b-e46e-8903-e94d-bffbbf1bccc1","OpaqueRef:3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d","OpaqueRef:1388c828-c07f-9391-a1fb-9cd0653117fa","OpaqueRef:49010e45-7adc-7912-16a1-45bbcd359177","OpaqueRef:7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c","OpaqueRef:43c79c0a-2a5c-0e0a-b10b-5c0847fd888c","OpaqueRef:bf225b3b-1e37-86dd-5922-a04df826dba6","OpaqueRef:8274ff2e-c513-43d6-2a55-ce0057861430","OpaqueRef:0bdee192-3fa7-09af-d3ee-12cd06ebb91b","OpaqueRef:4b3fbad1-a1b2-ccc9-813c-9d6151a9d974","OpaqueRef:d6219686-f85d-245e-c292-f2dab9cf156f","OpaqueRef:cbb0830e-78d6-6db4-b10e-cd1acbffcfd8","OpaqueRef:137475bc-66cc-23b5-4a93-1101da98b268","OpaqueRef:435947cd-5662-5e05-3da1-cb3cb6937448","OpaqueRef:1411712a-41d3-d353-5e92-b977076e1b05","OpaqueRef:2c6424c8-06c4-34fa-1ef3-6f04e5805e1c","OpaqueRef:7588002d-2ebc-c944-8f10-c5c452efb97a","OpaqueRef:36bca930-2c10-ece7-d692-5fd29aca70a6","OpaqueRef:899a5718-836e-bb6f-7f8d-2ada2bbc96dc","OpaqueRef:dd24c4b3-62ab-3d64-f1c9-3c36df94d604","OpaqueRef:26051e27-35b3-e931-521f-cb8806ecf4b6","OpaqueRef:30f950cd-ded7-0c2c-e58c-d782eda3d752","OpaqueRef:ed901fb0-1968-23c6-ec49-bdbda2035014","OpaqueRef:b15fecc5-3baa-5969-d2f3-b883ec5f1bde","OpaqueRef:e83a8360-7f59-c3b8-6799-39fa6509772a","OpaqueRef:47707758-d7e2-88d8-20bd-6f063c40bd18","OpaqueRef:b18bd364-663f-1421-4321-d11d27c5b2c5","OpaqueRef:48ac5191-399a-1660-42c9-754b302eeb84","OpaqueRef:421958db-0318-8810-3244-01f0f855895a","OpaqueRef:154e0584-ee8b-74ae-4e57-b02afd66ba13","OpaqueRef:1a4cfda0-0d18-b966-86c4-b80e7a832211","OpaqueRef:faf17e53-86af-aa3b-93e7-46a7f130d178","OpaqueRef:53a516b7-ac7f-519f-b9e4-b9f79a6a1f58","OpaqueRef:c6e718ea-7554-1841-ffe9-48304dc85276","OpaqueRef:e6e276f5-85c3-01a4-43f6-c7699f4cf723","OpaqueRef:5607864d-8f51-59c6-74a3-cbe8fdf91e19","OpaqueRef:67a5efa1-04cf-098a-f236-30b058cd2f59","OpaqueRef:a1fb1090-0bca-17c8-bbc5-ed82e230cdf0","OpaqueRef:54b50900-4c44-f1b6-edc4-4b9d80e2dc48","OpaqueRef:0002e248-e4da-6542-fb0f-85214c20b145","OpaqueRef:9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835","OpaqueRef:42c1215c-fcd0-e848-88a7-8e9ac7cb001d","OpaqueRef:28f7a03f-0ee3-383d-dcd2-ed2a466f62c0","OpaqueRef:a2c22e5a-4523-2a90-65ed-7501f6d08657","OpaqueRef:93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9","OpaqueRef:ec6018b6-36d9-6815-1de8-7d6fc7e9e136","OpaqueRef:37215355-cf4c-bacb-1e33-1f027fb8c81e","OpaqueRef:8a1a13f2-8137-b095-84f5-ae67e3c3ffff","OpaqueRef:ae118c9d-8c3f-46ad-733e-39af8a3fe63f","OpaqueRef:21882b95-87bc-8ee8-cc2e-653037903827","OpaqueRef:9e6aaac3-334a-9504-3583-2a2f1ecba5b3","OpaqueRef:b9415fe6-a3a1-5cb8-ca85-df89c1304e8d","OpaqueRef:9bcaf150-0b82-265c-2206-1b5f2d672608","OpaqueRef:bb55d298-b018-8a07-a849-bdea9692a88c","OpaqueRef:5e022752-8add-d1bf-4ac1-9c859fd9103e","OpaqueRef:a9c6394a-92dc-b5f3-e377-438eda6cc36f","OpaqueRef:ca3fd393-55a0-9270-af2f-9a597674113d","OpaqueRef:9e19021f-426d-0492-91a2-d2bcee7eb6ee","OpaqueRef:1c2b0fce-97b0-af45-8117-3f8a18bf11c1","OpaqueRef:69669133-f49c-5eed-22c0-654a80cc085c","OpaqueRef:e800a707-f7c2-c185-80f1-3c298a352591","OpaqueRef:ac2c2a4c-d87a-c905-b8d4-52dfac47e848","OpaqueRef:cc20c134-daa5-044c-3982-93ad5b30ae16","OpaqueRef:56e4df7c-d3b3-7f0c-5c06-67b936e5c967","OpaqueRef:bfa4946b-f2ad-9e5f-d17d-0d129a9e9afe","OpaqueRef:9dcf063e-c70f-4076-bc7a-6436a11bf93e","OpaqueRef:f103f866-344b-fc35-82a2-1d8bd72efa19","OpaqueRef:8dbed2d4-f59e-4eda-25f5-49475952e89c","OpaqueRef:37eccaa8-7371-5762-181b-9221a1f3cdbe","OpaqueRef:b5337a5f-8bd6-7c38-19fa-78b2dfe69869","OpaqueRef:c75bb9b3-7413-aa27-4188-ba2a88e56822","OpaqueRef:42163f5b-56b3-9e8e-ee1c-568efc8f5585","OpaqueRef:78482840-d3ca-b1b0-0c45-53a75b7824f9","OpaqueRef:05cf5f8c-0219-db92-26a1-29047a37c972","OpaqueRef:4fc1bf13-e0be-d634-8559-8b19c590afba","OpaqueRef:618815a8-ec46-44b9-06f4-0d53ecfb1fbd","OpaqueRef:32b9bc96-01b8-dd88-a59d-3294434bcf10","OpaqueRef:a8ffab48-a8e1-853b-f61a-0d9324076916","OpaqueRef:1c05c0f1-dfa7-f44a-7c7e-40bf1149e207","OpaqueRef:a7d2f695-623b-686f-25e5-e470bd6373e1","OpaqueRef:4322c6ea-1807-3e88-4104-269a8510c62d","OpaqueRef:1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004","OpaqueRef:a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c","OpaqueRef:78f71ff6-7c64-3281-44b9-025cf751e185","OpaqueRef:44847e22-2d67-3744-0698-506f6a8243e9","OpaqueRef:7e5e9fde-3ee4-7cf1-4756-915f745b4914"],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7955168d-7bec-10ed-105f-c6a7e6e63249","$type":"role"},"OpaqueRef:aaa00ab5-7340-bfbc-0d1b-7cf342639a6e":{"uuid":"aaa00ab5-7340-bfbc-0d1b-7cf342639a6e","name_label":"vm-admin","name_description":"The VM Administrator role can manage VMs and templates","subroles":["OpaqueRef:cb68795a-8d1c-f2bb-6869-4946fd2df840","OpaqueRef:1839c84a-cc70-8ca7-c500-f2d85b30aac4","OpaqueRef:eb5f0341-f8a6-e605-9433-d85031bb2770","OpaqueRef:da8ebe60-05d9-260e-84f8-b13dafaf518d","OpaqueRef:ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251","OpaqueRef:6523834f-9b0e-f8b9-2417-43e0fc980cd1","OpaqueRef:df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597","OpaqueRef:632bc7c1-60f2-a9ec-2db6-77992be390a1","OpaqueRef:73ef731b-d2b8-a643-f02a-276577b88b3f","OpaqueRef:e9008880-3714-e128-fcd5-d95cb8ee790b","OpaqueRef:efef35a8-cf3d-5f27-e7ad-a2f6f5202dac","OpaqueRef:52684caf-e375-6caf-3396-62bcd5134d0c","OpaqueRef:f39da662-3800-921b-a6d2-237aa094b51f","OpaqueRef:9fea0775-bfb0-bfd3-ea51-8d64335d23c5","OpaqueRef:9dd59816-dea5-9ea6-d863-53ddeae637c8","OpaqueRef:d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64","OpaqueRef:9eaf06ef-8f42-4832-7099-e5a63d32a87d","OpaqueRef:fd7dc035-3957-b7a1-f7e9-905f9f523ff4","OpaqueRef:cb82f07a-4829-4df9-1817-2e6979df85a1","OpaqueRef:daa86366-a0f6-b130-2d3d-77fe1355d6a3","OpaqueRef:91a8843e-12a6-4b4a-2d43-12db6b326490","OpaqueRef:bb22da75-1be1-172d-d8fc-1a1d7c45e425","OpaqueRef:ff06fa4e-8ca8-799a-f189-9cce85f6de90","OpaqueRef:95a849f8-0df0-feb8-7f87-4db6bf42da08","OpaqueRef:15dbefed-137f-5c07-a484-8f1ba24fb156","OpaqueRef:a3181fc3-eb26-baa4-ddf9-a6c9f2af5812","OpaqueRef:966296b4-fccd-e24b-96e7-d849e9aeb629","OpaqueRef:e8564257-d2d5-cfdb-03cc-93d65e6fbaa3","OpaqueRef:cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51","OpaqueRef:bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c","OpaqueRef:868dae0b-7f24-6fde-fc5d-0efebefe3c16","OpaqueRef:7193632f-b165-b0df-6eec-2e71f08aa430","OpaqueRef:38d061c2-1df2-dbbb-c049-44bc0b68eb1b","OpaqueRef:606450c8-c382-ccf0-2505-0ac239ad4adf","OpaqueRef:945bb27d-4f1f-d1ff-0e32-baa566437bb4","OpaqueRef:2c8931b8-0efd-9380-aa53-ab086ba4a2cd","OpaqueRef:0f9390a9-fd1b-1f93-d557-738545a56943","OpaqueRef:defae495-80af-75ac-d7de-a87a7dfcde9d","OpaqueRef:2e0163e9-7ec0-4088-aea5-688b3188b974","OpaqueRef:b0104ee0-e56e-e24a-01c9-be7b31ebac3f","OpaqueRef:daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4","OpaqueRef:ee19a249-eb0f-2076-81a7-8fe7cbff99b8","OpaqueRef:c43079a6-7821-364b-4269-05745d93e29a","OpaqueRef:4a544977-600a-957b-28e2-3b578998c8f5","OpaqueRef:24182612-bdde-08d8-8548-7a8922b40d59","OpaqueRef:0c393fa2-41f9-c981-5581-eb3000f8316d","OpaqueRef:5fa8a325-b230-e422-624d-78faf5473eda","OpaqueRef:19a7836b-75be-43f1-9f23-856f2be12fc3","OpaqueRef:c4dfc733-e053-1074-1a54-5cbc33ddf686","OpaqueRef:7d443d66-a509-ddd4-daf9-8f5c4ba55b4c","OpaqueRef:6ad192de-f028-0771-7f5b-bd20a8fe4caf","OpaqueRef:1421d041-f186-04a8-be92-a1b91244eba4","OpaqueRef:a66cba35-0b84-5261-664f-39c0d9ed54c4","OpaqueRef:e2cf5c12-4316-3fde-fdee-1f962e52a24f","OpaqueRef:f181149a-5c39-d532-a32d-b4c0cbf30f76","OpaqueRef:31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f","OpaqueRef:532e25ef-d282-4334-8145-2e7b0573c7b6","OpaqueRef:87e03946-2afb-f82b-7c4c-648c5f68bcb0","OpaqueRef:a62dfce5-4367-62b4-2b47-f178439fa685","OpaqueRef:5ff08560-8064-5ddb-b549-9c57ceae4cd8","OpaqueRef:d0c0c85c-c3e0-5012-0a48-59d9c2d517c0","OpaqueRef:b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3","OpaqueRef:66fa6648-3999-7a19-20c9-a25827d96b8d","OpaqueRef:0b7902b4-8ad6-b117-efbb-c2c2f056e009","OpaqueRef:2bf43b36-87e9-a224-4f48-9378843e4650","OpaqueRef:761f5f58-389c-d42b-185b-27d3649589e6","OpaqueRef:7a7b22ac-e5d5-cea0-a320-857896f593e4","OpaqueRef:f64ba22a-a70a-57da-34a6-adde7f50b686","OpaqueRef:182167f3-6dc0-b2c6-0ddb-2264903634cc","OpaqueRef:96052543-180c-6280-5b15-f2cc3cc4b089","OpaqueRef:eaf5e80c-79cc-aed7-f41c-23ea41568a39","OpaqueRef:acbd6ba4-b816-8e9c-9298-cae8b10234eb","OpaqueRef:0a581d00-0a14-6c1a-eb08-aee55c2a02fc","OpaqueRef:e61fbfbb-27a5-9b4d-c763-e9222b04d2fa","OpaqueRef:7f2c447a-558b-085b-53f4-15e9bde0bbec","OpaqueRef:acb54550-5aba-4e19-612e-12fa420b5687","OpaqueRef:f2eb9161-758d-0fb1-d254-0d20c628c865","OpaqueRef:35b648f4-a14e-5d25-fb59-57c74efda911","OpaqueRef:d40676d9-ddd6-21bc-cde1-e61e9e340cbf","OpaqueRef:433e5373-291c-2ea1-5b7e-81157e537309","OpaqueRef:074922ac-6eb0-c3b9-795b-62ef8efa69b7","OpaqueRef:cf2ec962-5270-cf53-d7ee-c29b07d2eb67","OpaqueRef:694efbc2-ae2c-5110-66c3-6a790f9f4179","OpaqueRef:5b0b6fc6-b286-89fe-4915-9f8fd82ebe41","OpaqueRef:e9de48a1-e723-e998-5aa2-856511ddd799","OpaqueRef:51f79664-2471-8018-6975-c75f214995f8","OpaqueRef:da9e6d7f-1d0a-50ef-1a87-8ace46f5be45","OpaqueRef:39ffaa22-27dd-5241-7880-ea677905cf86","OpaqueRef:552e253c-3b23-b27a-08b9-8342ba2c7aa9","OpaqueRef:6c815ba2-1dc8-c9da-9e17-61367f52328e","OpaqueRef:d2446ff6-79b3-58d0-1428-0dbe75485624","OpaqueRef:c35132f9-9d6b-4d83-8814-386c304c5b02","OpaqueRef:8eb4a4e6-e48a-310f-6850-cdf1fe544858","OpaqueRef:6692b21c-f620-f0e5-dbf2-dee1294645f2","OpaqueRef:090b0fa9-c127-16e5-4c17-4d08b4126ac3","OpaqueRef:03e94bb0-c911-2f70-33f8-b41aae2c6c18","OpaqueRef:b63d6fef-2e86-46e2-432e-3810c30a3fa0","OpaqueRef:fd737c61-91a8-e31f-49c9-ac46ef649b95","OpaqueRef:120c9250-46ec-3a62-fa14-99923beac495","OpaqueRef:398b78fb-3fe4-77aa-0c1a-9813c4f82308","OpaqueRef:76f60054-8565-3e4e-8f56-8a0d10e7b319","OpaqueRef:2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba","OpaqueRef:d1068e76-7374-9cf8-7189-03e003acf7c8","OpaqueRef:c9d198f0-f2bc-2be1-3d96-298db54fc798","OpaqueRef:2abfa053-fde1-2b41-3f57-42d9bf4fa586","OpaqueRef:d7ea15b2-0664-1cd5-dc30-7c49a546ae80","OpaqueRef:e2203194-7c7f-1b58-83b8-965b7c88898c","OpaqueRef:fe22cf0c-dbf4-50c2-8eab-9f9ab233142f","OpaqueRef:7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a","OpaqueRef:07de6fc1-c0cd-9b21-36c3-5baccf8d66ce","OpaqueRef:91d91080-a0b6-52e1-6c47-f19344682005","OpaqueRef:e35d6b89-5c97-f156-31c9-e518d3388659","OpaqueRef:530fe816-39e5-b429-2034-eed4c4463bea","OpaqueRef:6560fc11-49fa-5009-b9d6-0ec78e323867","OpaqueRef:ce8c8758-07cd-04b4-8086-945682e2b949","OpaqueRef:bb97a595-e5af-1b54-9397-9252a92e5d35","OpaqueRef:1bf80bec-4d61-7551-907b-63dfdb72c416","OpaqueRef:bc0653a4-e028-efba-fae8-e5b17731c375","OpaqueRef:539f0c4e-7084-9181-9fe7-4ed8e2c32095","OpaqueRef:6ee3304b-df34-a1cd-3e11-530d22b55642","OpaqueRef:c374b534-db7c-2c7e-f405-b061d3adc23d","OpaqueRef:006a72c8-531f-e719-3fdc-69f8b5c5f8df","OpaqueRef:4d842444-22ca-0ae0-365f-96b9de2639a1","OpaqueRef:4b46d426-0071-da23-974a-d20ba16379eb","OpaqueRef:2b5a7aab-29a5-b3cf-2d91-944fb2d22e66","OpaqueRef:9801533b-f160-629a-a994-e742e7971455","OpaqueRef:7033b792-890a-4ca5-0314-d6e8866d98ff","OpaqueRef:bf00c330-4ef3-1109-c17e-cf69d8996cf8","OpaqueRef:e58e85dd-0873-8df8-bf0e-a78ad73a0d83","OpaqueRef:7c284010-cae5-10b6-b321-ec149287a8c6","OpaqueRef:cd2c87ac-2763-dd45-0e22-b563622e5c9b","OpaqueRef:7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7","OpaqueRef:f78d82f7-c143-7172-096e-ad50798f475c","OpaqueRef:e4aac618-ccf9-4592-c23d-f829bbcf563b","OpaqueRef:08cfa7e7-f341-4a78-6035-87d5741d02e8","OpaqueRef:5103be90-76c6-cffd-3512-d622d93a74a2","OpaqueRef:6b28edf5-7612-be94-cccb-b7f2993b9104","OpaqueRef:d6645112-98c5-829e-d842-8d0241d909d8","OpaqueRef:a31fb120-d59f-d003-f445-557c6d40f0b5","OpaqueRef:54014da8-4ef9-638c-1089-074874d47231","OpaqueRef:f094e5cd-c351-cdcd-01a2-a9c9ee14941e","OpaqueRef:0e32a766-a0a5-00a3-0058-0bce4987d801","OpaqueRef:d632d605-4171-f42a-7898-62245cc28f04","OpaqueRef:4b7ea29b-eec1-c56a-304a-b68c88799fed","OpaqueRef:1165f711-b47e-76ec-dbac-4c225b4b9ddf","OpaqueRef:1b53cad1-0fb1-6b52-0875-c7f999a1a02f","OpaqueRef:009895d6-2a35-f2b9-5dbb-fca46c208424","OpaqueRef:d533db5f-b3c7-5053-942c-1ec28b1f25b0","OpaqueRef:3f3ec99f-91cf-3ae6-8a10-78901c4b25ec","OpaqueRef:1a1d982c-8dfb-5dc2-c535-265eaf8adb3e","OpaqueRef:86098675-bebe-e1d7-c063-988b04499e45","OpaqueRef:b798b24d-1067-d2ea-7fc9-f147d916ba47","OpaqueRef:b4992000-119b-662e-22d3-ff2ba2a55c0b","OpaqueRef:2694b9ba-caae-160a-1fee-c4401f7eb871","OpaqueRef:20192ebc-be70-d33d-c163-1770a526a958","OpaqueRef:76df53df-4e08-fd20-80be-8382f055f47a","OpaqueRef:c58e0892-cfab-2364-6b9a-fccf603a29e6","OpaqueRef:09f1a83f-01ae-ed9c-c781-98517d1dd3d2","OpaqueRef:d1e16e8d-92e0-ccc1-c85c-c2244e99ae74","OpaqueRef:27e9e225-a5b7-ca6e-75d3-5b4cb52d3627","OpaqueRef:9a38b22c-0f0e-1bb3-323f-04b4445a3700","OpaqueRef:b6a98068-1e06-e7fe-1010-269343afa0b2","OpaqueRef:f0155615-65ba-9161-c3bb-cac286bae2b1","OpaqueRef:d3c5c812-c278-9827-8e2a-24bbdab201a7","OpaqueRef:531f332b-49aa-b429-6f50-4d803205f792","OpaqueRef:fcf7dbbf-286d-73ec-e9e6-6c329a627d01","OpaqueRef:b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e","OpaqueRef:04e56171-2991-e1d5-f908-d6aa4ea70bfd","OpaqueRef:e57f5462-775a-c7cb-0098-6f5d512abece","OpaqueRef:f35f5fa2-d886-5a8f-a5e4-1e41237e20d9","OpaqueRef:d2071cda-fa54-9231-7db2-fddb3112eae7","OpaqueRef:0423894e-139f-10e1-855f-4a550175b615","OpaqueRef:f089614b-16db-9e28-06f9-0e0ca7be5320","OpaqueRef:941a6983-a5e2-3772-ed58-1e2aa29b1436","OpaqueRef:47999374-b082-b73d-09d1-37bb2836d522","OpaqueRef:5937be6e-540c-da35-a08f-45b6bee6950c","OpaqueRef:dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded","OpaqueRef:84aed1e7-ce75-1c04-9221-b41765e7ec25","OpaqueRef:e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8","OpaqueRef:e66a5a0f-8c8e-d629-ba92-1b1f0374498e","OpaqueRef:12c18c1a-3ecf-e8bb-646a-eaaf975c5813","OpaqueRef:fad90582-c075-9587-bf3e-d24d76692ba8","OpaqueRef:13a11943-2578-a1c5-b1f4-c5e25c5d070f","OpaqueRef:7a156321-0c6b-a61c-3cda-d9e580d35fbd","OpaqueRef:b005f138-d13c-ebd2-bdd5-1e4550f3ba91","OpaqueRef:c00d0e92-ac51-2914-ce0f-01292607e440","OpaqueRef:12dca690-28d3-8620-e4b6-a16beff24246","OpaqueRef:2d90779e-cf44-eaf2-b452-f843b56b58fe","OpaqueRef:79f576b0-2f82-8786-3ef1-7e90ef0fbd56","OpaqueRef:9a8e1a97-9547-897b-dddb-5753fc491146","OpaqueRef:ea2e80cd-54dd-4feb-e266-4c4a8acf47da","OpaqueRef:1f843368-7d86-3388-f5e1-37e7451690e3","OpaqueRef:612d96c0-c6d3-073f-c3af-a9a471d6372e","OpaqueRef:6a10a27b-0a5b-721a-3a2a-931542eb779f","OpaqueRef:c86ce51a-f6ca-5685-503a-e8f988d8f3a1","OpaqueRef:ee92c33f-0176-2f81-7850-d8274d543cbd","OpaqueRef:05e477c2-6a5d-f53a-ccf3-28f472a19553","OpaqueRef:f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490","OpaqueRef:40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f","OpaqueRef:654a657c-4f57-0385-b0b5-f11bc085f916","OpaqueRef:b0d95391-a938-cc75-303e-543e6a5c07a5","OpaqueRef:a46d2d35-0fdf-7a75-6025-ee689f25773c","OpaqueRef:b1dcf01e-9390-4ad1-0f2f-8263dd9476c5","OpaqueRef:bc55b6ed-c4df-4cf5-2118-8421fca4dfba","OpaqueRef:caf63646-b530-624d-9fa6-d6b1ecfb1c82","OpaqueRef:ab0341ec-b69f-cafb-c519-d7f18a922839","OpaqueRef:398b1e83-6b06-7664-4efb-ee31275c86f7","OpaqueRef:e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333","OpaqueRef:15b8f6a0-991c-7089-1ef9-13e4f77e2556","OpaqueRef:4a622ed6-a1ca-4eba-7b12-59480d645194","OpaqueRef:61c08156-de47-7f68-035a-7cb5e42de46c","OpaqueRef:7823a440-ae2e-1c9a-d613-1aca2913b5cb","OpaqueRef:e80dcb82-245c-feaf-ac10-679cabce6713","OpaqueRef:c7c664cb-1efc-9388-91d0-28100c085aaa","OpaqueRef:3f3480e8-c6fc-b6bf-05f0-a6377ab50db1","OpaqueRef:b5189a1d-4fd2-8953-ab9d-8b970655f47c","OpaqueRef:02e0b886-32f4-1f25-d83e-6e88ab11e20f","OpaqueRef:9cd6b930-8313-fbc2-7214-083a6d9ab81c","OpaqueRef:92e5a45a-edd9-635c-8929-b4956320c847","OpaqueRef:dbc87b09-5539-c8fd-9c4e-0659a7217325","OpaqueRef:cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f","OpaqueRef:866c4d54-adbc-cd19-1540-183e7ad9bdd4","OpaqueRef:43bed9f5-4bb8-551b-8540-922b40e0dd42","OpaqueRef:d1ff49a6-6866-db73-c3ed-6faeb5460a6f","OpaqueRef:4c98e491-6bb2-7ce7-460a-3a9471bbd598","OpaqueRef:9ee4625a-e02c-100a-c621-43852bfa3d29","OpaqueRef:a0be8b9a-d205-110e-3d25-525f697490b8","OpaqueRef:c236c0c3-35a5-f7a4-59d1-1f7c0b9f3e6a","OpaqueRef:0f24aebf-4e7a-325e-2741-6a1d2058ec31","OpaqueRef:16903632-2be2-df6a-f611-5e3c49cbe0dd","OpaqueRef:8ab9b8e5-1b7e-b05f-7889-da1b89be11f8","OpaqueRef:f455a71e-e0ba-5da9-3b16-89ad594976cc","OpaqueRef:f54e4617-9438-c1ba-d8d6-572fac712fb5","OpaqueRef:f2495b2a-1230-9278-bebd-93fa6d8b3fbd","OpaqueRef:29ad72a1-9024-a9b4-9224-65f66ba950f5","OpaqueRef:1794530b-615b-581c-6a04-f5582a545c32","OpaqueRef:845ce175-49cd-1ce3-0ffb-0267ce3afeab","OpaqueRef:fb9b9a1e-8d10-f254-c1c5-6848f19e82a8","OpaqueRef:a7af6687-e67d-2820-4eb8-d3f45c68f237","OpaqueRef:26bf73e8-f349-dba2-a7e9-9eb1e0b182cb","OpaqueRef:88f04cd7-9daf-fb60-ec90-720bc2a252c2","OpaqueRef:dffecfb1-e0db-1f2b-87e2-109d72562608","OpaqueRef:aa8f3abf-5f51-8ef1-038c-5f5391c1762e","OpaqueRef:076441c4-1fe6-1681-52eb-5593cd018537","OpaqueRef:b55d8910-9487-9485-5408-06d3a0232abc","OpaqueRef:13aef116-19fe-3a1f-2041-41f5a1a41e3d","OpaqueRef:c4739e90-efac-29be-27ee-b40047d88653","OpaqueRef:e5ab4d36-a5f8-3a95-ee23-281c9e16974f","OpaqueRef:81fd4de4-5bbc-7ba4-c2b9-8d2cf7e80974","OpaqueRef:4fd7812c-7d30-e97e-73fd-f428da986071","OpaqueRef:45182b24-24c6-6a9c-01c3-49ac4a6bfb04","OpaqueRef:b4c7644e-ca1d-c511-fba7-3f7474dae079","OpaqueRef:bf77e796-59d3-18c0-116e-a30e514e47ef","OpaqueRef:c70f5e19-5cc8-09b0-900e-752d10caae49","OpaqueRef:ab44acd6-dc9d-6533-3e96-eeb6690c03ab","OpaqueRef:67bfa576-0e16-1fbc-3916-7c7258702d23","OpaqueRef:181f66ab-cc92-1fc8-b3a9-8b4bb1f74acf","OpaqueRef:cae4947e-dfd0-ceef-f8e6-7de4e4596a0e","OpaqueRef:f48b609b-4cbe-b22b-5240-10d3b4df505a","OpaqueRef:19a7222c-dbb7-e646-6160-c30e82608772","OpaqueRef:b1203245-34c3-7026-c290-d998c5e94b69","OpaqueRef:7a3744a6-02a0-fe82-1201-31301aea1f2f","OpaqueRef:d24ca751-b516-edff-736c-3e6b0719115b","OpaqueRef:f458e427-5928-9057-c219-df99153fc075","OpaqueRef:895c0c2e-8b08-ed68-e7c9-c2ca8ebea573","OpaqueRef:0653de2c-ffd3-554f-d7be-1ecd0e140093","OpaqueRef:d1d95133-7aad-02fb-0ef4-0e3553fbfe1a","OpaqueRef:e215abe9-6d54-dc46-ed03-61829c477270","OpaqueRef:7fa1e0d6-4301-86d3-f678-989f56a7f9e5","OpaqueRef:4e458b99-04ca-4759-4f2b-25943a270d11","OpaqueRef:0f9a4bd3-1ac7-0694-d293-5b5cdd3a96d1","OpaqueRef:24b924aa-926c-879e-d2c1-fe778e82ccee","OpaqueRef:b6096493-b47b-3bc4-a9b9-6d670a304017","OpaqueRef:4788c0d8-8cc1-11b0-c43c-0ea2b02689b8","OpaqueRef:60d79042-e0b2-74fb-5fc3-25ff0e9f200b","OpaqueRef:0391a375-885e-a621-2ed0-c5a05e6ba6d1","OpaqueRef:e0953596-a798-5359-5ae9-dc7d3cc23411","OpaqueRef:0c318a73-1355-8297-1aa7-7b59652d83eb","OpaqueRef:499c5989-c80a-2567-6f8b-50b0cf1f569a","OpaqueRef:0054aad9-6816-61a5-593d-ffcf68fe7c51","OpaqueRef:4f62cf52-b15f-d722-3b4d-51a9c67ecf9a","OpaqueRef:80305d17-0b56-9f66-6d8c-40abe30a928a","OpaqueRef:7ff61b17-b047-7486-b476-3a46d8a3f5dc","OpaqueRef:7e213280-e967-f94d-2663-7c0cd886aa71","OpaqueRef:d443b5d9-94b5-50ce-a635-1ca03b81bcb7","OpaqueRef:ac16b434-b718-b77f-e797-4c8032c9a21b","OpaqueRef:de8bf714-f486-251e-f6f5-e566b8de1a9e","OpaqueRef:a23b22f9-bca1-caab-136d-9d1c6ee976b1","OpaqueRef:5b776f2e-a041-f093-8497-48c16883f061","OpaqueRef:b58c1211-94fb-cc3f-668f-9c64343d5ef6","OpaqueRef:d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0","OpaqueRef:da44ea34-34ce-eee1-0fe5-e2fbd374087c","OpaqueRef:291376bb-00a4-4520-d42b-6fc685798827","OpaqueRef:c0eeaefd-fce4-4122-bf5f-6548c7627ecd","OpaqueRef:c76febe4-ccb8-b0f6-d9f3-eddfb8068cbe","OpaqueRef:4eb6785b-2126-b2f8-2c55-f5a0b59694e9","OpaqueRef:f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473","OpaqueRef:7862cac7-5a00-3e1c-fa98-1ccad464efde","OpaqueRef:7afd9229-b870-bc5f-9dd0-c8e3aae1edd8","OpaqueRef:ab13cd53-fee2-e913-c1d5-d8a73d183c04","OpaqueRef:50c826b9-553f-0f9d-6ec5-e56c4bfc700e","OpaqueRef:dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9","OpaqueRef:e558eee8-cc61-ab94-2838-d11ecb19b9de","OpaqueRef:f0b68388-4ffe-ae16-785c-73bf1daf76de","OpaqueRef:cca9c4ef-8dc4-3928-6973-1001fefddcc1","OpaqueRef:1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb","OpaqueRef:bb0a41c6-9f17-3373-fceb-43ef16b241b5","OpaqueRef:78595ea9-9a7b-2bb2-b7ac-888947bb5f71","OpaqueRef:05540a9b-fd89-62d4-15c2-569bb74a45c9","OpaqueRef:8624fdc6-5a79-3477-2f2b-a692d687856f","OpaqueRef:6c868e70-45f5-7510-e697-31565da1b645","OpaqueRef:50baf2ac-cd2d-8c58-6b49-7d922a38d506","OpaqueRef:b8d7db71-88c3-3973-0f76-afb5ea8758b2","OpaqueRef:b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa","OpaqueRef:c7b3adec-b936-8480-8162-4d0176e80494","OpaqueRef:1611b4a5-6d76-0608-be83-bb85cc0f4401","OpaqueRef:76add74c-9a76-ec09-e9ba-062f5fad673a","OpaqueRef:1eb1cfda-f398-99f9-2b7b-5a186bfb5769","OpaqueRef:48e48870-e314-22ff-23e7-9c81e0a09de8","OpaqueRef:6b99cb7e-9854-bbfe-13c4-23c85b58cd27","OpaqueRef:3b17375c-d99f-b75d-771a-d6bd526bc732","OpaqueRef:330de495-5f10-90ae-9985-a622287978cd","OpaqueRef:6950f134-0be9-1cf8-a418-b84f72b5c550","OpaqueRef:2da47eda-326e-bc79-2991-4178a7f91aa2","OpaqueRef:d3e10235-4c09-4b21-ac38-f5e7118ace9a","OpaqueRef:1cb862c1-6e27-7e9a-1757-d3340ce05a6a","OpaqueRef:4bf0efdd-5a06-f1f2-9e42-235746e68e72","OpaqueRef:07e67067-0db3-473e-f720-1b13cb7165cb","OpaqueRef:59d3a529-afca-f562-204f-bc882519cfc6","OpaqueRef:6745eaf1-b724-7ba1-6adc-6714d87ed055","OpaqueRef:fb5f1cd9-639c-fe4e-736e-59f602bd6769","OpaqueRef:63f5ab90-88e3-b9c7-869a-ad1e4725f6c8","OpaqueRef:8b2811fe-bf52-d656-379d-c4dc786d2863","OpaqueRef:f075184a-6d67-aeee-23f9-4af9fb3fdc70","OpaqueRef:72acb54c-837e-f60b-5b73-54258ba6f8ce","OpaqueRef:fc02d213-9915-5d79-f9f9-77981d5e7e61","OpaqueRef:fe33f11b-7386-0023-20a5-5d66b81d1550","OpaqueRef:ea08f6e0-a317-ec4e-b863-b58cd69e6f55","OpaqueRef:07ba3c3a-6d81-f137-050b-460a090cd95e","OpaqueRef:c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e","OpaqueRef:b8e13938-03be-2a5d-fc3b-425b8f7966f9","OpaqueRef:d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8","OpaqueRef:6419de42-529d-e793-ac14-e1afc0f4d3d7","OpaqueRef:e17a593c-8a4f-f38a-ebca-9bfefa5ca0d7","OpaqueRef:52e71fd0-4e0c-c56d-ecbe-1258494bd886","OpaqueRef:7980080f-48b6-928b-4b88-114da9c5fd80","OpaqueRef:36ef005e-7879-0edf-e7d9-54b5b5f6e467","OpaqueRef:ff2c84a9-3ea0-6792-fe4d-3215c397f3b0","OpaqueRef:18d16a24-b68d-43cf-69d2-7a5868998306","OpaqueRef:6d180e8a-3fc3-4459-2526-189b389da794","OpaqueRef:2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4","OpaqueRef:4a2b195f-f477-f143-e4db-f96913abdf9a","OpaqueRef:4af3e675-5dd0-08c7-b67a-414e85223d40","OpaqueRef:cd17195a-9274-0b74-bc8e-3f0c916bfbce","OpaqueRef:864a54cb-981c-8bba-19eb-2c76ce406359","OpaqueRef:37fed550-72a4-a8c8-5468-8bc3bfd1554e","OpaqueRef:800592e3-30ac-bc00-4274-f9c23e335d57","OpaqueRef:699638de-d890-04ef-ea8e-5473742ceb88","OpaqueRef:5dc61f97-020c-3958-1531-9d950ebad058","OpaqueRef:0f104484-8054-bb43-0685-27030f6bebca","OpaqueRef:7122efb6-3045-2da0-b503-1524b692a5d8","OpaqueRef:79a22291-0fca-eeef-d23a-1b796b2123aa","OpaqueRef:fc844b8c-44f7-0a47-136b-9fdae98759df","OpaqueRef:539ace0a-c714-562d-f153-ce5df5f92265","OpaqueRef:a714bc2b-93c4-7785-d84c-53e40aaabc73","OpaqueRef:caed3120-c6e2-8d1f-4498-6aa7d966a575","OpaqueRef:aae2577c-a1a7-9646-9bc5-a9c082108eab","OpaqueRef:4bfb1275-7c46-d751-4ab4-f19c5e83bd41","OpaqueRef:1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f","OpaqueRef:96fbe84c-1cce-dab3-c396-bb28962a8aab","OpaqueRef:0b3c3543-7504-c5eb-4673-31e51971670a","OpaqueRef:94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e","OpaqueRef:8dfb37f5-203f-2ea4-597f-7c350f6233f1","OpaqueRef:3f9bb6d6-db4e-b115-a2c3-adf553886983","OpaqueRef:2770c2e9-7d35-17f7-5f34-9814d604a3c7","OpaqueRef:9760f691-5295-ecc8-bf2c-3865249c1f6b","OpaqueRef:a2a09fcd-1313-554c-9051-f4dd1c4474fe","OpaqueRef:4a16dd04-0fbb-e5bc-af88-01046c72c54b","OpaqueRef:9350ea5c-ca28-1ece-9c6f-1c4ab918d119","OpaqueRef:d529b00f-b546-b67d-c50e-f0d216b2ef56","OpaqueRef:1ea042ad-d922-f7cb-90ab-9ac09e011670","OpaqueRef:0d87eda4-f5b4-1c19-ff98-f1bc171afb8f","OpaqueRef:6d3feec4-ad36-040d-b555-8c49b8015bf2","OpaqueRef:4c964b58-b18d-599c-140c-3d7e6fee0949","OpaqueRef:fa09b51e-0da5-a900-4da2-33752ad8a112","OpaqueRef:bebace76-69a8-cb40-82aa-5ecd4b882075","OpaqueRef:f05760c3-46d9-9cf5-8831-330943a33ce2","OpaqueRef:9a9b62f1-2fae-cc0c-03ff-147b35e7917e","OpaqueRef:e39b5c55-fcf4-41de-74c9-a38e278e85db","OpaqueRef:ca111bd4-768b-a624-f752-4d4a51ab2471","OpaqueRef:66ce4f5c-82d0-457d-dced-433bb8b5229e","OpaqueRef:16474184-4484-6193-a7f4-2baa521a56e7","OpaqueRef:cf7a0ae8-7440-c6ac-ef72-5454aadc19a7","OpaqueRef:dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4","OpaqueRef:1c6ae07b-8cc7-3334-d143-40fba15e5d1b","OpaqueRef:26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1","OpaqueRef:38d676a9-1eca-992f-8768-65856d28ec39","OpaqueRef:76efe753-ae98-21ef-4ee0-c06be1ed6bf8","OpaqueRef:7ace0159-c007-b95d-d43e-90af54f7b4f3","OpaqueRef:0511b768-32ca-e60a-83d1-6089ee037abd","OpaqueRef:8b731fe2-d6fa-2b5a-738b-aa1501e2a00c","OpaqueRef:c2e03e88-ade6-a5ff-db5b-b92e0bc2e580","OpaqueRef:627b53af-258b-eaec-feec-9a1cfb5e915d","OpaqueRef:d6b2a0b1-1991-b740-0d48-242d5b3463b2","OpaqueRef:5502ee79-ceec-099c-740a-42e395dac81b","OpaqueRef:b498514f-0f98-ec60-df87-f1feed07141b","OpaqueRef:6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e","OpaqueRef:0cd88229-8eb6-dd98-09cc-8635498afcd2","OpaqueRef:58ac1559-04a8-f7ad-2224-53591cacfcb7","OpaqueRef:d7450039-1e27-7ac8-acc5-a698cb19a525","OpaqueRef:ae095db7-583e-cfc0-2cd3-db791d3b1671","OpaqueRef:8ddf8bd4-4146-aab7-5e60-37b3c59f060d","OpaqueRef:00f9116e-139e-c5c6-e647-308230cc9f5a","OpaqueRef:70787b4c-26d0-f9c5-9b31-1c9e291035c4","OpaqueRef:14ea86d7-eccf-8790-fe68-2cee27f915c0","OpaqueRef:7f355dde-ac8c-9a02-ce96-16a1a08c0836","OpaqueRef:1c6bfef7-d9c9-4b53-4184-c72d5896e910","OpaqueRef:8ae37793-9d90-d55d-bd48-328657eac262","OpaqueRef:4748a78b-fbc6-06d6-9a9b-0fee76a37e42","OpaqueRef:922f39f2-c948-d0cb-813a-8fb675fe1209","OpaqueRef:5e5aa3af-ee5b-3973-2b26-cf1882900d7c","OpaqueRef:ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b","OpaqueRef:ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3","OpaqueRef:d13394ed-05a5-8a53-ba59-20525ec873be","OpaqueRef:c71d068d-24c4-6d68-8439-3078c968141e","OpaqueRef:bceff7d6-7267-91cf-fef1-eaa65de886e2","OpaqueRef:b9a4873c-7e19-ebec-d524-f1d69da5324b","OpaqueRef:a433bf84-7725-f4e2-6f89-31054403dd87","OpaqueRef:e254be14-8fe4-916c-b287-25b8be1a6502","OpaqueRef:fae19164-aa28-38ee-e1e5-a3a3082729bf","OpaqueRef:86907190-69ac-4a19-df3b-6678644e64e8","OpaqueRef:1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f","OpaqueRef:b132a88b-b242-3cf8-0459-4bd858b7dc93","OpaqueRef:505fcb18-5888-5bf2-75be-6235aba2e6ee","OpaqueRef:d5b5a870-45ee-4124-ec9d-3f16ed2c7db7","OpaqueRef:ac809817-a5db-b4a2-0b14-3ba7c0ff2165","OpaqueRef:7958cefd-9fdc-f836-fedc-22f89fd06ce2","OpaqueRef:176db48f-09fe-625d-8d3f-0588f796751a","OpaqueRef:dff728c2-2d9f-e6ff-57ef-a0e31f0927b6","OpaqueRef:7c4df9d1-26c8-8986-35f7-a1ec7f4804d2","OpaqueRef:0a561bf4-9228-cb18-0ce3-7d2a0d302800","OpaqueRef:21d14229-6be0-a401-6580-4ff98d459f7c","OpaqueRef:f850300a-1604-59c2-5cab-0a1380798fbd","OpaqueRef:3c6c94b2-f160-ff62-be39-e917e080f3d2","OpaqueRef:26e20184-1c7f-5596-b456-22ff28f2562a","OpaqueRef:5f5d40d5-5171-dacc-b6ff-497744f2d6cf","OpaqueRef:92d0e454-d08f-fe30-f288-33ac5e9a7193","OpaqueRef:724d860d-c6b0-aecd-97e5-a28c944cf21c","OpaqueRef:5dc23f7d-7008-5d99-0cd6-780fff26f7ad","OpaqueRef:69cd7eb3-9c03-a6ec-1942-77ccfef89687","OpaqueRef:49f55d27-bdb9-ea99-50c4-bab151c7ed0a","OpaqueRef:d687b364-5ce1-9ab4-0594-1568e7962192","OpaqueRef:b433a6d4-aac5-d6f5-429c-fb6e4c3fb586","OpaqueRef:4fe83cfe-641d-099a-ca6d-921f4f3744ae","OpaqueRef:0b33ba31-b80b-e074-7262-65ad91ff9313","OpaqueRef:10d871c1-c065-b472-0fef-42311c39c9b9","OpaqueRef:a8bfecf9-7e65-f0b7-f087-a59845369df3","OpaqueRef:4bf590bd-2137-55dd-90cc-1735a84da788","OpaqueRef:1e34f646-0d83-991e-6d57-53abf105526b","OpaqueRef:ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33","OpaqueRef:57eb64a6-04db-6995-2a99-3eaf96be5263","OpaqueRef:915e4dab-9537-bfa4-fac9-85addfb3eeac","OpaqueRef:4f7a7bae-a4ae-9024-ffd2-3bfe706c266b","OpaqueRef:2ef836d2-b9dd-5a23-c794-2e7589f36be0","OpaqueRef:e0ca9324-e1ad-9179-5282-f7f36641bb1d","OpaqueRef:067511f8-54b7-de65-b4d9-dfb2089ac41a","OpaqueRef:1bb99abf-a34e-2a07-c87a-871871b84931","OpaqueRef:051d2068-cedb-9155-c92d-1233e9fbc3e5","OpaqueRef:1fcbc379-fbbb-f702-d1ba-7158bead56df","OpaqueRef:520813ad-5f48-b68b-da3a-36a944d0a2d5","OpaqueRef:1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d","OpaqueRef:383340ed-7b65-ec60-3687-cd5b9a22dd4d","OpaqueRef:c6cd9483-96d1-5a4e-8272-58d62903ba13","OpaqueRef:c935c5c6-6224-1650-60e8-8fe70daaa5c4","OpaqueRef:d9b34a9f-bd57-74ef-44ca-d5dc42e857bc","OpaqueRef:603d3545-44ef-8bee-7e48-7a9ec1fe0f4c","OpaqueRef:2ab258fa-f9f0-53ca-1a97-e319259e63d8","OpaqueRef:92828369-5a7f-e0cc-ff8a-20ce4e6a182d","OpaqueRef:cf2e8f13-038a-7d7b-5021-c881eadac803","OpaqueRef:ff8c2c53-80b5-03a6-88c0-ced5d925bc2f","OpaqueRef:027a3a06-ffc7-fc53-f107-b8ca78294326","OpaqueRef:76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d","OpaqueRef:bf7f941b-03a6-dfab-5f08-5f1d5e046a8d","OpaqueRef:91b38c06-f1f7-acd5-a6f4-5e10e9decb8e","OpaqueRef:a8accf3c-5e68-c1ad-347e-4b14086a0a3c","OpaqueRef:0298a263-16aa-fa51-84d9-bf231b03257c","OpaqueRef:b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8","OpaqueRef:92424d6e-6c8b-e6cf-52f8-c1ecb18ac162","OpaqueRef:b9b352a0-6f8e-854e-71b3-04d31b6483fd","OpaqueRef:e9d70821-4d5b-c6e8-0769-305ea28819df","OpaqueRef:70a45f35-52c8-981e-b5b4-756e9dd422bf","OpaqueRef:29f5163f-f0c4-062e-38a7-e652c0ed5987","OpaqueRef:fa0065df-12b1-d909-9f18-0ee0e5905322","OpaqueRef:0075f8e8-9cd8-3a4f-89e8-f53ff0121590","OpaqueRef:1cd93736-a017-b50b-a7ff-f84557f73b64","OpaqueRef:52e94cd3-f9ef-225b-9d23-133e521e39ec","OpaqueRef:43bd2f40-5b02-5f5f-f2de-3355ce64f08d","OpaqueRef:fa8c8b9e-82c2-1edd-0621-58b876ecb786","OpaqueRef:25efdd5a-5572-0245-6f76-edd4d8ba87f2","OpaqueRef:43f83df9-8b01-dd53-da07-19c763c45316","OpaqueRef:b73723e7-74ed-dae5-a160-a31e2f96f64c","OpaqueRef:3763d099-4a3b-3905-7603-8e5a98dadcc6","OpaqueRef:7a01d196-5bf3-d888-ca53-f7c308d79daa","OpaqueRef:5b8ed78a-2c12-c8e0-c706-c960dcac0e02","OpaqueRef:f5e84d5c-9173-a902-ca07-aaa980e78e7a","OpaqueRef:f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088","OpaqueRef:da79116d-658d-77fa-9595-51e744744bd9","OpaqueRef:7b46c171-b1db-a323-3b76-457ea95372d2","OpaqueRef:363f935d-b9b0-96d5-6286-c7c611a0a65a","OpaqueRef:58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f","OpaqueRef:2072d2a6-0563-826f-693b-1d3d46c4d4ed","OpaqueRef:ad8c841c-d7b0-29d0-bbfc-e102b0cf29db","OpaqueRef:ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c","OpaqueRef:fd67acf4-c454-2308-703d-b1c548829599","OpaqueRef:531b14e0-799d-158b-2741-b0722c44ef81","OpaqueRef:8deb8400-477c-d1ed-5e43-3a57cf19fc18","OpaqueRef:bb254b62-2ce5-d18a-ea89-b9951d43540e","OpaqueRef:dac42fca-3f2b-9f12-984c-094ee89b8a3b","OpaqueRef:bee385fd-db51-c95f-5dc9-e0cb27058fe4","OpaqueRef:898a10e9-4929-667d-1f69-6084d82f95f2","OpaqueRef:0093bc43-35e1-4d14-5ae8-0d48a7c7696d","OpaqueRef:8e640d08-58a8-3220-9ad7-2f6ce7ffcb54","OpaqueRef:f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3","OpaqueRef:4cf2b236-677b-9ed4-7466-d0e1337a0549","OpaqueRef:b3db5cf5-cf31-a92b-edbf-05fe326e9844","OpaqueRef:e3370dac-0910-8f7f-a68c-aa87ce861519","OpaqueRef:68d3594f-230f-4fb6-5177-fd760bca1be6","OpaqueRef:6ad64869-f5c6-00aa-b2b8-8281cfd24e88","OpaqueRef:bfd6aaa0-e3c7-2b73-47c5-06903a2d09bd","OpaqueRef:dc3df6cd-f17c-73a7-b27d-eb95a8be35ae","OpaqueRef:ab7a8ddb-0a66-957e-b67c-2623919816b3","OpaqueRef:70178e57-b50b-900e-a105-0b50d5961ad2","OpaqueRef:84facb10-a76d-d587-f1b4-fd1bfffbbd13","OpaqueRef:f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f","OpaqueRef:5e271507-05bb-a4b4-2aa1-45a1d678a3c3","OpaqueRef:9b129852-5a6b-938a-6657-d7fb8c0fd1d8","OpaqueRef:1e749289-18cf-7c15-dfef-7c563ac409d8","OpaqueRef:182ecb35-daed-9ee8-efc7-cacab112b589","OpaqueRef:13cd1c58-7c1e-1ab4-65ed-9ff82b888688","OpaqueRef:8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0","OpaqueRef:a06fc2d3-81c9-76bd-b9b3-d00973854b22","OpaqueRef:29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2","OpaqueRef:941b5182-310c-b1c2-fbf4-1409241add9a","OpaqueRef:975df00f-053b-2fe4-70ce-41b80b2814f9","OpaqueRef:ca855242-855a-9952-32db-65969a8ce3fb","OpaqueRef:bfdf5c96-6ada-a5ef-cc47-ea345940662e","OpaqueRef:f825b844-c7b4-2900-cf4a-5cd059d26dc1","OpaqueRef:1681d655-5c34-3b05-1c48-771660b0f3a6","OpaqueRef:53ca7741-71e1-66c1-c42d-6d9351b41551","OpaqueRef:39bad4e7-597f-2ecf-93c6-39b8d945de5d","OpaqueRef:a1421191-fe98-3281-a792-d201a2de2bf6","OpaqueRef:1f9dfeb1-7d99-1409-e6eb-d9522e1ca3d6","OpaqueRef:d535938f-a852-c579-75fd-f7064065ecbb","OpaqueRef:d91aa452-182d-736b-a240-4414fe355a93","OpaqueRef:7d45ebaa-c032-5209-010f-bda83e9995c0","OpaqueRef:13657521-3100-32e7-3d38-a1c0df842c77","OpaqueRef:4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259","OpaqueRef:55377552-76fe-e589-d4cf-02f64f49f350","OpaqueRef:d36bf25c-cffc-3785-e9a4-1d6dd826cd03","OpaqueRef:97b2ea1f-c272-bbfa-4e1b-ed567d0cc9b3","OpaqueRef:cf9b90c9-439b-c33c-c4eb-86e8b1bf4157","OpaqueRef:53e3bde4-ef9a-5933-62c6-89a992f399b0","OpaqueRef:216b0366-cd42-24db-57b1-3c8fce70e4ba","OpaqueRef:5beceb5c-5880-09dd-3eba-d5133d463f9b","OpaqueRef:7bd495ef-abbe-3363-4f68-64a70eed83eb","OpaqueRef:61fbb0bd-b453-3369-98a3-53f4f8a7fe6c","OpaqueRef:00056679-3372-9b8e-6488-10d423edb0ad","OpaqueRef:64067282-0137-c32d-3ae4-7b20b6a93ad1","OpaqueRef:97015ed2-cf9c-9ff4-9d34-b1ae9a377788","OpaqueRef:c492097b-20fb-0584-6559-893d4d35c82d","OpaqueRef:de3c3005-8901-9213-2c61-45e6d489c801","OpaqueRef:0fd4e192-6082-738e-c2c5-27cf2cb5f467","OpaqueRef:3f4867e1-9401-bc2a-a260-5561bfe8d08c","OpaqueRef:3ad57875-8d33-5adf-7184-24f4df2b6981","OpaqueRef:5c07d45f-d9f5-207e-1e3e-70c0b5abc69b","OpaqueRef:73ba289d-8cab-51d5-a8f6-ae42be46b61c","OpaqueRef:88447749-f966-bae0-a649-ad12c1391cc2","OpaqueRef:9799e20d-f5ed-6371-1fd7-6ad3fb1df729","OpaqueRef:b06ba59a-e556-7f5c-902a-871a8004c149","OpaqueRef:6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2","OpaqueRef:522142a2-c5ce-4095-85b3-13bf2ca36175","OpaqueRef:2fa043de-5e00-c856-7ceb-0b0a266f0a4c","OpaqueRef:7356e67b-7806-3749-5459-4409094561d0","OpaqueRef:e18acdf2-b7ed-9d85-2aad-10e4a767b62e","OpaqueRef:81ee6b76-da69-18b4-18b1-f4e09aa1b119","OpaqueRef:61080452-d30d-cfed-7985-400322d30d53","OpaqueRef:bb7587c3-a0d4-46e4-af05-6ed1cc33d23b","OpaqueRef:1cf6f512-a2d7-1189-1e32-3a1e58c1e66f","OpaqueRef:a04e6272-743e-809b-dc4b-a2edd6fdeb0b","OpaqueRef:5f3a7f4d-29e6-df00-2bd0-6a16b0fef414","OpaqueRef:6ed0eebe-e588-e5da-a6c5-c24353ce5d42","OpaqueRef:e46476eb-f04e-f11e-ea3c-88dbe418ccb9","OpaqueRef:dc84c131-adf9-d460-4988-294d88b46924","OpaqueRef:f559123e-c887-6ab7-49cb-675b315d69d7","OpaqueRef:9de70f7b-12d1-6625-5970-894335e62431","OpaqueRef:7c2f2761-86e0-d176-8791-cccfe25d8700","OpaqueRef:e4fd9189-1c6e-8b2d-690b-8f7923b2477e","OpaqueRef:1069a4f0-17e8-cde0-bf04-ffa08d2878ea","OpaqueRef:3d8acc2e-3bf1-9245-35dd-493184d88770","OpaqueRef:c41cce49-6fcf-44c2-1c59-99d127686bff","OpaqueRef:03c65989-d970-28e1-2d72-8cf1ffb06a95","OpaqueRef:2a8ae027-e709-28ac-8de5-56adc284daa6","OpaqueRef:3eded99d-19e8-b6ca-435c-7b6f2b220b3c","OpaqueRef:c58d6c90-98ef-d44f-f4d4-47bbfebf6a28","OpaqueRef:3a08550d-abba-d9d6-bcf3-df495332dc7f","OpaqueRef:396ee7a7-5e5c-9399-d89a-427109e6ab21","OpaqueRef:cfbc0c25-0514-0a40-1c57-9e063667d33e","OpaqueRef:a6d34497-1418-7a05-f792-60f8cbd8f7c5","OpaqueRef:6fcc710b-6217-2c38-f2bf-2455728b2b0d","OpaqueRef:805b2422-565d-0957-0898-5d5a078ee501","OpaqueRef:3d022c5c-d53d-333c-706d-c175777da30c","OpaqueRef:09593fa1-1b87-1d23-8e61-bf79b93236fc","OpaqueRef:3cc87704-357e-0ea7-e918-dcae6f73fa8d","OpaqueRef:49bc2875-5acd-548c-8823-bd2c6c2322d2","OpaqueRef:ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae","OpaqueRef:57fb16f4-51fc-7798-1845-070ca26ba746","OpaqueRef:544ea348-b989-8d3e-6042-13999626c5e0","OpaqueRef:34c8cdd1-6c69-506d-2e10-1a051d5f7d60","OpaqueRef:db6de8b4-bfd5-c3a5-905f-94106bb5a2ab","OpaqueRef:c1207e93-3ffe-9166-4ff7-80b763788417","OpaqueRef:2804a382-939d-876d-c50a-dc18d199bfe8","OpaqueRef:4b182675-bbcd-8a69-3671-5803cb22b481","OpaqueRef:e01a098d-e8fc-81fa-764e-c07a342d219a","OpaqueRef:2036d54b-2179-ce69-a922-9b2d5cce6916","OpaqueRef:58e3edff-51a7-7143-020c-11e3821c18cf","OpaqueRef:283982da-ebce-2cc4-faeb-4bee137761bc","OpaqueRef:f17f15a8-882f-380a-1e75-7074e4e51e1e","OpaqueRef:d6271e34-14a8-85dd-28dd-f090b63ff588","OpaqueRef:499f5734-a8d4-4c55-83af-f0b1e2a9d67e","OpaqueRef:89e757f3-4619-1fe9-1b1b-3afdc986af84","OpaqueRef:62801603-a12a-b8ae-eb7a-0890725c7310","OpaqueRef:8673c2e3-429c-7599-35e6-e9a804892d2a","OpaqueRef:3ee06801-74e6-08cd-b237-7636668ced4f","OpaqueRef:af9bf6e8-720f-8eba-b583-5ee68d14de90","OpaqueRef:a212b9b8-aa8a-6243-180e-4270a46cec2f","OpaqueRef:a1492f6d-0469-f57f-074a-88453672a2de","OpaqueRef:e756d67d-3c2b-a489-3c3e-763748f886e4","OpaqueRef:39b6f8c8-bfbf-b629-5d92-6594e516730a","OpaqueRef:c18535f5-924a-5a11-7522-c8ba88f23eac","OpaqueRef:acf9e287-4110-4a5a-c753-7925bb43678f","OpaqueRef:d7435e71-c22c-3fdd-bbcf-33849cc039c3","OpaqueRef:3057ba41-6ab0-21bb-c4b9-2a53ded43c5a","OpaqueRef:e69c0e91-d962-f102-9200-5b00d7ff495a","OpaqueRef:784956f0-eb8f-e687-118f-5ee8fabc47dd","OpaqueRef:d0e2be89-4c37-3974-149e-c06d8358e0be","OpaqueRef:c317c9dd-000f-61e2-91f4-cafc36cc3f65","OpaqueRef:dc719910-a701-5800-fe16-18e3cb4fc00e","OpaqueRef:0dfef1da-7988-b6a2-0752-20b8dfcad6b5","OpaqueRef:a7f5635e-754b-2c47-0182-b2cd6eaa6a4c","OpaqueRef:21c41bf0-8c5e-b6de-5dc7-f71cb751a430","OpaqueRef:37548ef6-abc2-9f49-7fd5-efe65a5b5448","OpaqueRef:5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044","OpaqueRef:6682964a-92f7-ece2-30b1-583be0f69b15","OpaqueRef:eb0f1687-b443-2873-e3c5-3464197a2a50","OpaqueRef:ca439f57-3fa8-ee93-f2a5-5d4f72cbb907","OpaqueRef:28069750-7807-2fa6-9bc2-bae7456f5de9","OpaqueRef:450af311-5669-e4c7-6ca3-b3350172eafb","OpaqueRef:9fb5a1d6-e53b-24af-bb7c-49a942f0bc65","OpaqueRef:ad6b4de5-bb53-c27c-f34a-033542cbcf61","OpaqueRef:cf8f0a82-e845-5f00-68b3-d0905d31e8be","OpaqueRef:fc7cd54b-2fde-4fe7-4caa-e152930fed06","OpaqueRef:d619c5a5-074a-a015-1c1d-a0a0e62bfaa5","OpaqueRef:84d71586-5ce8-2364-c74b-0017c93b82b2","OpaqueRef:0e28a706-8960-58a7-4f9d-c3b0eea64a0a","OpaqueRef:e3637139-7f57-56b3-b8e8-4fd736f11588","OpaqueRef:164a66c7-e0b0-7fd7-ccd3-d13042353c78","OpaqueRef:88fc5a8b-e5f3-612f-7a32-e5a651abd04b","OpaqueRef:0ed8495c-b53e-7951-d041-14df9605e6f8","OpaqueRef:88f8cb5b-b92e-0ab4-307d-2ed4ea447475","OpaqueRef:e7d108ee-2082-98c2-acb6-5884f39f3056","OpaqueRef:62084664-4e15-5ca5-99eb-00007ed70717","OpaqueRef:f2df7036-f418-a415-ddca-d31ba6ff611e","OpaqueRef:4b368ad8-3eec-31b3-5fb0-d1070507cfd0","OpaqueRef:b7db64ab-97ce-4dfb-45d7-f505756fe4a8","OpaqueRef:25d4aaa3-582d-7e6e-eb43-8fba9c42568c","OpaqueRef:ff776240-dbd0-9ef8-f34f-42c85cf01b3a","OpaqueRef:559b520f-dcef-e6b3-6a21-3a74d84d3fa8","OpaqueRef:1a37ccfd-f500-bd50-bb25-f20411bfbb35","OpaqueRef:086121bb-2bba-06e9-bab2-6b7414b0e4eb","OpaqueRef:2fd85a90-74c9-15e6-d4f7-e59c7f584ac4","OpaqueRef:54cb0e64-7459-04bb-621b-4f16f42ba21f","OpaqueRef:9e2e9082-8361-adb3-1e6b-51178368e9a5","OpaqueRef:f1ab04b2-6571-fff1-66c0-720ca6c50bfe","OpaqueRef:616109ba-d73f-ad1f-a4ac-4a1454b7b742","OpaqueRef:8295c108-ca0f-bc2e-1d77-d580d9dcbdff","OpaqueRef:65e61767-fa64-53ff-0056-6491eaec7d1c","OpaqueRef:b2dc1fd3-b84c-d045-efe6-174954f53ad0","OpaqueRef:a534c226-3cce-06b6-3a28-cbf339c0e385","OpaqueRef:a576f048-226e-b605-b15d-f388fd903210","OpaqueRef:676b455a-f9eb-78e3-a1ef-a1ea437f6110","OpaqueRef:3d4411cf-b855-6140-b1cd-1c6b7a0ebedd","OpaqueRef:a0184446-8631-4833-3651-61ca4293ca60","OpaqueRef:b277f808-66e4-fd82-2300-bfae51e59679","OpaqueRef:babc2b36-7a11-3b3d-03da-fc3130f49a35","OpaqueRef:2a3d6942-c2df-0472-5241-52530708b8c7","OpaqueRef:7e23cac0-90ad-45ba-9a62-c7b6a6e4002c","OpaqueRef:b8f9b23f-65b1-75c0-289b-e6e2872ee81d","OpaqueRef:2adc8291-5288-6526-87a0-0b15ec4ca4fa","OpaqueRef:01844316-a78d-e6f9-a7b7-53a939235f5d","OpaqueRef:b1d61197-b0bf-cb30-2120-627c956a97f7","OpaqueRef:74ef5702-8a42-a7a6-8951-a28ae3b64197","OpaqueRef:ab2230c7-8d4b-357d-6a26-62f7c9b0bb27","OpaqueRef:ce3646e1-704b-6b7e-f468-45a009bec12d","OpaqueRef:c911cfca-5100-8446-b631-2d6f3861350c","OpaqueRef:f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4","OpaqueRef:883d4710-6475-244f-cce7-d17282265fdc","OpaqueRef:56a2f957-6b1b-7d8d-00f6-931d4574f63b","OpaqueRef:bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f","OpaqueRef:ba6f9682-ea22-caf0-ea6a-cfad6774390d","OpaqueRef:04ac5338-b19b-6833-ed3c-b992d6ef8328","OpaqueRef:917258fe-6427-e960-98e8-9f3bbd88bd22","OpaqueRef:2de23583-b3f1-6e39-4bd9-4c7bc7afc977","OpaqueRef:46c7e8d5-56f3-060f-2995-2d969d216c2b","OpaqueRef:06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5","OpaqueRef:c2bc934e-8ece-de2e-3288-7ccbab1e257d","OpaqueRef:e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a","OpaqueRef:3b5deb71-ec32-2485-4913-089fa04f1ace","OpaqueRef:c7b868fb-53dd-4ff6-9b83-fe096e910d82","OpaqueRef:3516a06e-5a67-7f1f-4c83-40b3d7e914f0","OpaqueRef:439dce99-b067-9c88-7a0a-06e581f8f502","OpaqueRef:8e7a8bd9-9ac6-a612-477a-12c33c6af2d3","OpaqueRef:2cc96f79-52aa-dafc-494e-5d04eb63b66e","OpaqueRef:2966c4db-3b8e-7257-734f-0969cf20819d","OpaqueRef:312ca834-68b2-6c0c-7608-9fa37ab92a80","OpaqueRef:de6644f5-642f-de4c-0a6c-643305b2d412","OpaqueRef:532b0c67-7dc7-8ea3-2e90-ed2db7b2a1db","OpaqueRef:b36dd591-9707-22a9-dd2f-f4ace0f16c2f","OpaqueRef:73dcfb11-02cd-8963-408b-dad8c5e273f9","OpaqueRef:4422e4c7-9256-2554-f5cd-20e747e332de","OpaqueRef:18dad7b9-c57e-c98d-7d17-f0bf1d7e06ab","OpaqueRef:412f975b-5a60-92d0-a171-2bedf499c0f5","OpaqueRef:4e914b35-ddeb-12b2-31fd-e2fbcbec010d","OpaqueRef:588d746c-9967-8e54-df7e-a825bc64f73a","OpaqueRef:e9a7fba1-deec-3478-2098-26b97828c750","OpaqueRef:93dea749-bb50-7546-5ecb-90cfbf26165f","OpaqueRef:b37bf5ec-05a4-e2bb-1586-d973d208a2f8","OpaqueRef:9d51a9e7-b720-b88e-5240-256b52701685","OpaqueRef:a00ac9c0-8960-1e84-c638-c9858dfa4101","OpaqueRef:0c82bef6-ba72-0bee-b924-84feb84b2e77","OpaqueRef:6753d0e3-8e17-9f9d-cb5f-9642c2b7685d","OpaqueRef:d70b794c-05dc-77a5-b720-51a905de3f2b","OpaqueRef:0462f07f-cd50-abd0-7965-0ec55f5a126b","OpaqueRef:a28dd0cb-fcd5-33bd-7657-278e5f653471","OpaqueRef:35767a4f-af9a-af62-5f51-ed250f684d25","OpaqueRef:2605b766-9cb9-cdb1-53e6-2431e711af44","OpaqueRef:f5b86d13-b503-2c7a-83cc-b54896afb752","OpaqueRef:266d1cf3-ea34-44ba-fc97-cf4cd876d7c8","OpaqueRef:2cdb0f4e-685a-814d-03e5-19c4fbe5aa64","OpaqueRef:a2f2b2b8-188f-f022-69bf-fa443d89bb58","OpaqueRef:a4c9dc80-0070-0067-a1d3-339b5081adc0","OpaqueRef:f6184e4a-0be4-97e7-6db6-bced99fcceff","OpaqueRef:771f7157-33cd-a8e1-f5a7-ae23af63c750","OpaqueRef:7f545d78-e772-030f-2e95-7d3b998d3000","OpaqueRef:b99da77a-522d-4bff-9013-ae981fceda83","OpaqueRef:0a01091f-7913-54d3-94b5-3ef26f90b0f9","OpaqueRef:dfc8a1f1-60c9-373b-c6a3-56c0712754a7","OpaqueRef:e3e174f6-5c33-6385-bd9b-09213a73e701","OpaqueRef:f1fc3e4c-3f63-876c-f667-2c06a3321e7c","OpaqueRef:3230d646-65ff-59d1-0400-5f58231c0664","OpaqueRef:68130225-5eb6-b36c-43f5-c81acaba8b68","OpaqueRef:9ad29a74-1eec-8937-697a-ba3679e4f48d","OpaqueRef:3fa0a161-a6ab-4adc-3749-2aab29e2b445","OpaqueRef:1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e","OpaqueRef:924d34e6-51df-0ef3-fdd7-065a11af80c4","OpaqueRef:ccc6e989-a50d-3530-743f-d13e7f05e5dd","OpaqueRef:bbdc09c5-8729-4aae-9945-66b292cf2aa1","OpaqueRef:62c6badc-ea63-3832-3641-cd0eccca0304","OpaqueRef:18c1913b-2356-df02-11ce-ffd2da0e4170","OpaqueRef:e522fa0c-7c50-cc59-c88d-0dedc9aac2aa","OpaqueRef:a5bca0b7-88eb-7892-b1ec-e328146be11a","OpaqueRef:57003b7e-6b62-44ed-9efa-d02a2c73946b","OpaqueRef:58fd2438-7368-a4de-3b67-e5ad53708171","OpaqueRef:baf1360e-2dc9-be3d-08bf-252994e78ccd","OpaqueRef:8618ece2-3298-2490-19dc-2e951f388f1d","OpaqueRef:acfb9201-52d6-3881-04f4-83ae8376300e","OpaqueRef:fa7a9290-f86a-2185-3c2e-9a4c5ad746ae","OpaqueRef:092b2548-6da4-7838-9b3d-af0860032580","OpaqueRef:4cfbb76c-adc2-c543-66fc-b1239cc2674d","OpaqueRef:a8137b60-e684-3a89-3c7d-70365d9f8465","OpaqueRef:edd8481c-3712-064c-e444-2a1f20a31aeb","OpaqueRef:566ee717-dd27-c672-e4ea-2f0796acd117","OpaqueRef:4df8d39a-3fda-a201-f792-c727dd2ffa60","OpaqueRef:0f5f27b8-5098-237f-e2b5-14c9512fb0d6","OpaqueRef:360c10c1-5edb-2dba-9e8e-f1440e9a948c","OpaqueRef:4950f5c0-e772-3c03-61a0-6b00f291448d","OpaqueRef:ad699ad2-4125-fa0c-2869-8b6640360731","OpaqueRef:fa8993fb-524f-eb9a-641d-06b2099ecb82","OpaqueRef:a973885d-511e-de2a-00ef-18ed6acf3021","OpaqueRef:73e1bedc-0afc-64a1-ac4c-a58f118bbdc6","OpaqueRef:efb93f2e-bf72-db7b-d36a-1be03c962cec","OpaqueRef:0ec88acf-cbb0-d4d3-7c8b-f5f320e6f0ec","OpaqueRef:e8872a7a-d9f2-2a9c-1e4e-ed2e94612f6b","OpaqueRef:19dd9241-f613-057e-d933-dfc254e20a6b","OpaqueRef:5312dde5-afa4-fafe-a3a4-a9729b47b80b","OpaqueRef:ad2b02d4-5928-4232-df0e-a7fdebd8fb62","OpaqueRef:f2370df8-242f-0ca6-ec92-868200d68c34","OpaqueRef:eaadf2fc-0fa1-892f-b20c-e3b8ac502e6b","OpaqueRef:ed243ad4-497a-52e3-d46b-945f2e4156f3","OpaqueRef:4bb206e0-df39-3bb0-2402-e4d584e6861d","OpaqueRef:ef6fd636-89c1-1e1f-157f-284e8a450324","OpaqueRef:5ff8b980-e213-e1f0-dbda-b5abf2bbe72f","OpaqueRef:c7734155-0a75-ac54-6f7c-74a8da933455","OpaqueRef:eadc7ba0-7efe-5e4c-7b78-482519be7522","OpaqueRef:25927722-f11f-2805-9006-8fa441b22745","OpaqueRef:804810ef-bdde-04af-addf-31ac6e8eb8ff","OpaqueRef:f8d1620b-4d3b-ed60-af3d-6a13a59d65e4","OpaqueRef:325bbd68-d003-fcb2-bfa5-3745d5c7d4ef","OpaqueRef:f5b632a4-7a1a-576c-e9cc-0ba84cf1071b","OpaqueRef:8b3775f3-de8a-7191-05be-d652c36aa494","OpaqueRef:fae90cea-ef53-bc8b-93d3-c0c48384feff","OpaqueRef:6e3cc91d-fe57-6857-c385-343d09c1a113","OpaqueRef:710cfeb3-2a8d-27ed-c208-78f2db5f79a8","OpaqueRef:06c9a83e-f5d7-801c-cef9-f564eada350a","OpaqueRef:3acba506-ce1a-b39b-b637-3731b50880e9","OpaqueRef:4894cd8b-7d71-407e-2852-1b7f4aa166cf","OpaqueRef:311d925a-6070-271d-a724-0948552a654f","OpaqueRef:44d764dd-95db-e4d9-4cf7-1250f3ca601d","OpaqueRef:937b2b79-813a-a286-cbeb-da09e3cf4c90","OpaqueRef:44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a","OpaqueRef:ab3a2fc2-a70b-9122-8c6c-a51f7c11f438","OpaqueRef:18c32fa8-b18f-6a28-5b40-12f9077d7661","OpaqueRef:92967fef-88ab-15e4-f16c-9f042b3191f4","OpaqueRef:a3f5b9a0-e36f-41d8-65dc-8f7bd095293b","OpaqueRef:9986f58f-773c-c701-6b97-7e99b0135124","OpaqueRef:d450902b-de9f-7867-c98c-f912e6a80cce","OpaqueRef:7936813a-24d4-e749-f89a-dec7286a0b99","OpaqueRef:81239256-3acb-c6e7-b689-9eb4e54c9956","OpaqueRef:745095db-fdd8-7025-f9b3-839b0fa846f9","OpaqueRef:7187f8da-4c69-cc67-9718-1f98b825c1ea","OpaqueRef:601664bc-64ea-312f-6bc1-543ca1a0177c","OpaqueRef:729d8740-7096-6a5c-49dc-6c4cec96500f","OpaqueRef:d4ab22c9-f134-2607-284a-56381333719b","OpaqueRef:2a06d13d-ff22-2dc7-98a6-a97c7c723481","OpaqueRef:a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44","OpaqueRef:a14d9994-ac84-07cd-e0c3-621d7c92f0aa","OpaqueRef:56bc2594-ff11-2fa7-8f46-18178bd1010e","OpaqueRef:396bfd0b-b63b-449b-75e0-f4998ed9ea1f","OpaqueRef:7a90825c-43d6-122c-0805-408ff98a5064","OpaqueRef:af48eae9-9c88-9a3d-e57a-46250c33abf8","OpaqueRef:174af546-476b-1579-44ef-07346dbbe4b1","OpaqueRef:2aa40daa-f640-4198-a8b2-20fdfd44947f","OpaqueRef:7555a731-bf5e-2494-cf68-90a0d7594b06","OpaqueRef:c3ae01b1-a370-4ec3-d91e-4d8533a89f86","OpaqueRef:edac34a6-33d6-77bb-28f4-420479c713a2","OpaqueRef:4210bb3f-296a-873d-f592-9a9cf531b0b2","OpaqueRef:bcd53d79-34a2-71df-29e1-c7e72dfca15e","OpaqueRef:7762becd-462e-6753-2b38-d70dc62e2c29","OpaqueRef:3f2d95ef-f35a-fb7f-ac83-1e31d28eb587","OpaqueRef:79e264ba-b809-161d-44cf-f628b44dea1a","OpaqueRef:2d6b6f99-d4ff-f561-6f39-1a2361b296b5","OpaqueRef:57b4a7f4-2b31-e7dc-3698-cfc7ab53d6ec","OpaqueRef:b6e74e20-a86a-c58b-67e6-8d481d0309cc","OpaqueRef:0d2542ab-7612-5824-4c0b-a77676fe1df9","OpaqueRef:eb56bf07-27a0-6d21-b864-90d65355a7c6","OpaqueRef:a9077c51-15e4-6c48-46d6-b37841c7edf4","OpaqueRef:7b14057e-435b-da4a-f335-5710072124bb","OpaqueRef:a35e33f5-26cf-7f6f-7bee-2e69c34448f0","OpaqueRef:d5c12717-98ae-ea62-287b-ae5de38e2c4b","OpaqueRef:b7b71954-9351-702b-765d-1e3757e2da15","OpaqueRef:9b1c0f58-1625-a13d-413a-5260b57607ca","OpaqueRef:ad0c4088-5db2-3676-22ca-b679662173da","OpaqueRef:d83d3500-e310-848d-ba03-1601caced032","OpaqueRef:fe5d5a1a-b9ae-a0f4-2d61-50416f161d60","OpaqueRef:a95d21fa-7e04-1468-b0dc-27d81e39c09c","OpaqueRef:37f9a250-fd67-56db-e2c1-7f7c7abfd9fb","OpaqueRef:a5ac4a15-20df-40aa-1d01-c668e8746d7b","OpaqueRef:93340db9-eacc-0e12-9151-854745d49cf7","OpaqueRef:9dd43118-a078-1317-8a87-83ebed088133","OpaqueRef:63b9ae45-0e59-c1e6-d3dd-f596860071a2","OpaqueRef:67af93c7-dfb9-98ce-ccbf-80fb7e828e27","OpaqueRef:23af0178-71be-1c09-5f09-4eeb59279dec","OpaqueRef:738acc9f-a221-a9c7-c008-4f324a609677","OpaqueRef:6467bf45-4441-2fb7-299d-da6dc598310b","OpaqueRef:5cd9ce80-b26e-54b1-0dfb-07431f9fde11","OpaqueRef:ef373d6d-ccef-defc-69de-d76a06ec27ff","OpaqueRef:dd9035db-7349-697a-84aa-6aeef6601c43","OpaqueRef:a1f5ef8e-8116-2ead-ce75-4ff9cdeb6fbe","OpaqueRef:c614ec0d-cd31-33ba-21b3-43a6c498d0fc","OpaqueRef:34e576e5-27b1-46b3-bf30-25a663835fec","OpaqueRef:0620c7fe-5acd-626f-cd9d-79997b854a2d","OpaqueRef:f6607652-9394-52ba-ced3-f360b1257e6f","OpaqueRef:5d76223e-2db4-b433-f8c2-cb2a5d864efa","OpaqueRef:27378730-81dd-d327-639d-17495c264bc0","OpaqueRef:f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103","OpaqueRef:4d21470f-106f-4e87-5109-1054f40a15e1","OpaqueRef:8cbe8380-7d8b-e296-35f5-7941ad540728","OpaqueRef:26a2c50f-a17d-dea1-7046-e09d4e4beb2d","OpaqueRef:95d99f45-12d3-b0d4-5b95-3cf4e910c7c1","OpaqueRef:a954a18e-5251-f3c7-1bcc-0a7e3e532d13","OpaqueRef:b2bf107a-c001-a3f5-0f11-d9b414b636e9","OpaqueRef:d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d","OpaqueRef:cfaaa17f-391d-2412-ccd2-afab25ccab6d","OpaqueRef:bd37900a-e6b0-90df-dabf-871311560070","OpaqueRef:d237f558-5bcd-610e-0028-4fe71d0ac595","OpaqueRef:703ca7dc-8dcc-6df0-2473-7337caa1c17b","OpaqueRef:bac565df-939b-c536-dfc4-35ea64950ad1","OpaqueRef:d19eb620-7260-c930-6729-682529ab1d12","OpaqueRef:1ee62327-b580-693a-9635-78d27050c1b6","OpaqueRef:657ed104-a6cf-c0f5-1813-48f0bb17da4e","OpaqueRef:01a743e5-a3b5-f318-7228-4ce8fbcc6662","OpaqueRef:019dc5fb-c3ad-90db-7e97-160d3fcf1970","OpaqueRef:70276941-c1fc-66ff-97b9-6a2f0e4417c2","OpaqueRef:fe6b159e-02e4-9220-217f-f7530ac32810","OpaqueRef:765c29b0-1ca4-48cd-1222-4eeb6655a7d7","OpaqueRef:36d74e5e-a510-68e7-45b1-ad0a7c5f47c1","OpaqueRef:6d0a3227-0550-f146-7aac-34259c56d99e","OpaqueRef:86989975-8b09-5f82-f068-64f59f226978","OpaqueRef:dfa26a90-9ce7-1147-7ddb-d79dd9d9c105","OpaqueRef:e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd","OpaqueRef:9c4cc775-613a-fa97-0912-aa44311671b9","OpaqueRef:ebb0b010-c619-1fcf-2519-a386d57161bf","OpaqueRef:96a4dd40-ee88-1987-3286-55c08bf66316","OpaqueRef:de4a5cb5-c8d9-3319-92bb-a0a0f560067e","OpaqueRef:9c0443d4-538d-c2ef-af03-55f9e033f6b1","OpaqueRef:0e630687-91e7-fb14-32b8-d7813d4dd5ac","OpaqueRef:024ec9db-e7f1-de4f-23be-6c3e46f8a797","OpaqueRef:106a8006-8e4d-000a-e85e-5077503d891d","OpaqueRef:4eb027f0-0349-99d5-83ee-4d00063e9a62","OpaqueRef:51a0170c-4df8-88fb-62ad-a85085484604","OpaqueRef:dd56ce4e-8a5f-0776-a0ba-682b1dda3b84","OpaqueRef:795faa64-e21d-c19b-a175-7c28d7af1935","OpaqueRef:eba43944-c9fd-a3ca-d20c-d39c09923eeb","OpaqueRef:ea191445-996a-32e0-33dc-2819c43657a2","OpaqueRef:5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a","OpaqueRef:eb7f2515-ab28-d9d3-17eb-285a28545189","OpaqueRef:621bc530-1dd3-dea9-a82e-498f86b5664a","OpaqueRef:2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b","OpaqueRef:206c900b-40cd-e97c-ef4d-1f20a3d67e1e","OpaqueRef:9366d110-4c7a-e528-014c-8cfd1bc735bc","OpaqueRef:2d30096c-51e6-487a-b95f-5d3b49e0922d","OpaqueRef:29ccccc0-78ea-f639-1829-f5579b6cc3fb","OpaqueRef:6979048a-de08-4e61-feb6-b5ad950b3b88","OpaqueRef:17c2c3d4-6525-49ca-28c3-efc752410e1c","OpaqueRef:8a499ea6-d0bc-3218-e271-c5507d8f8a96","OpaqueRef:1ec637f9-4157-5b26-dabb-31f3331c2959","OpaqueRef:b57b8c50-f2af-943e-a514-8340681aaaeb","OpaqueRef:c99755dd-030f-7f04-48b2-eadf25ecd92d","OpaqueRef:dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f","OpaqueRef:8fb7479c-f838-e29b-4693-651f31819f9f","OpaqueRef:5a960d88-c30e-3aaf-f79c-e58803f4e544","OpaqueRef:3561ecde-dba0-fb56-62b0-1a6101833aca","OpaqueRef:dc25c20a-f553-ff0d-b49c-ddb96d8e2e61","OpaqueRef:795b843c-c4cd-3690-a224-e36e687ef07c","OpaqueRef:43572bd0-288c-6290-e52d-9f12253f662e","OpaqueRef:e73ccdb9-0003-bcaa-8576-fd587f6abd36","OpaqueRef:4a4afbc3-0b2c-f5f2-6967-6afb51cf903e","OpaqueRef:f52942a8-5ac5-2c56-c42a-79d9c3ec2c82","OpaqueRef:6113a2d6-4c9c-48a9-dc31-1c7b590e3cde","OpaqueRef:3fdd414e-97c6-a7a2-c297-871f5f05ee3d","OpaqueRef:a00e1125-aa6c-2a9d-2cef-3000e5357ced","OpaqueRef:973b22d8-c0b0-834c-ff70-30cdd424d1d8","OpaqueRef:207a7572-567a-8900-16f4-41f9c102bdeb","OpaqueRef:50dc8d5b-e46e-8903-e94d-bffbbf1bccc1","OpaqueRef:3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d","OpaqueRef:1388c828-c07f-9391-a1fb-9cd0653117fa","OpaqueRef:49010e45-7adc-7912-16a1-45bbcd359177","OpaqueRef:7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c","OpaqueRef:43c79c0a-2a5c-0e0a-b10b-5c0847fd888c","OpaqueRef:bf225b3b-1e37-86dd-5922-a04df826dba6","OpaqueRef:8274ff2e-c513-43d6-2a55-ce0057861430","OpaqueRef:0bdee192-3fa7-09af-d3ee-12cd06ebb91b","OpaqueRef:4b3fbad1-a1b2-ccc9-813c-9d6151a9d974","OpaqueRef:d6219686-f85d-245e-c292-f2dab9cf156f","OpaqueRef:cbb0830e-78d6-6db4-b10e-cd1acbffcfd8","OpaqueRef:137475bc-66cc-23b5-4a93-1101da98b268","OpaqueRef:435947cd-5662-5e05-3da1-cb3cb6937448","OpaqueRef:1411712a-41d3-d353-5e92-b977076e1b05","OpaqueRef:2c6424c8-06c4-34fa-1ef3-6f04e5805e1c","OpaqueRef:7588002d-2ebc-c944-8f10-c5c452efb97a","OpaqueRef:36bca930-2c10-ece7-d692-5fd29aca70a6","OpaqueRef:899a5718-836e-bb6f-7f8d-2ada2bbc96dc","OpaqueRef:dd24c4b3-62ab-3d64-f1c9-3c36df94d604","OpaqueRef:26051e27-35b3-e931-521f-cb8806ecf4b6","OpaqueRef:30f950cd-ded7-0c2c-e58c-d782eda3d752","OpaqueRef:ed901fb0-1968-23c6-ec49-bdbda2035014","OpaqueRef:b15fecc5-3baa-5969-d2f3-b883ec5f1bde","OpaqueRef:e83a8360-7f59-c3b8-6799-39fa6509772a","OpaqueRef:47707758-d7e2-88d8-20bd-6f063c40bd18","OpaqueRef:b18bd364-663f-1421-4321-d11d27c5b2c5","OpaqueRef:48ac5191-399a-1660-42c9-754b302eeb84","OpaqueRef:421958db-0318-8810-3244-01f0f855895a","OpaqueRef:154e0584-ee8b-74ae-4e57-b02afd66ba13","OpaqueRef:1a4cfda0-0d18-b966-86c4-b80e7a832211","OpaqueRef:faf17e53-86af-aa3b-93e7-46a7f130d178","OpaqueRef:53a516b7-ac7f-519f-b9e4-b9f79a6a1f58","OpaqueRef:c6e718ea-7554-1841-ffe9-48304dc85276","OpaqueRef:e6e276f5-85c3-01a4-43f6-c7699f4cf723","OpaqueRef:5607864d-8f51-59c6-74a3-cbe8fdf91e19","OpaqueRef:67a5efa1-04cf-098a-f236-30b058cd2f59","OpaqueRef:a1fb1090-0bca-17c8-bbc5-ed82e230cdf0","OpaqueRef:54b50900-4c44-f1b6-edc4-4b9d80e2dc48","OpaqueRef:0002e248-e4da-6542-fb0f-85214c20b145","OpaqueRef:9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835","OpaqueRef:42c1215c-fcd0-e848-88a7-8e9ac7cb001d","OpaqueRef:28f7a03f-0ee3-383d-dcd2-ed2a466f62c0","OpaqueRef:a2c22e5a-4523-2a90-65ed-7501f6d08657","OpaqueRef:93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9","OpaqueRef:ec6018b6-36d9-6815-1de8-7d6fc7e9e136","OpaqueRef:37215355-cf4c-bacb-1e33-1f027fb8c81e","OpaqueRef:8a1a13f2-8137-b095-84f5-ae67e3c3ffff","OpaqueRef:ae118c9d-8c3f-46ad-733e-39af8a3fe63f","OpaqueRef:21882b95-87bc-8ee8-cc2e-653037903827","OpaqueRef:9e6aaac3-334a-9504-3583-2a2f1ecba5b3","OpaqueRef:b9415fe6-a3a1-5cb8-ca85-df89c1304e8d","OpaqueRef:9bcaf150-0b82-265c-2206-1b5f2d672608","OpaqueRef:bb55d298-b018-8a07-a849-bdea9692a88c","OpaqueRef:5e022752-8add-d1bf-4ac1-9c859fd9103e","OpaqueRef:cc20c134-daa5-044c-3982-93ad5b30ae16","OpaqueRef:56e4df7c-d3b3-7f0c-5c06-67b936e5c967","OpaqueRef:bfa4946b-f2ad-9e5f-d17d-0d129a9e9afe","OpaqueRef:9dcf063e-c70f-4076-bc7a-6436a11bf93e","OpaqueRef:f103f866-344b-fc35-82a2-1d8bd72efa19","OpaqueRef:8dbed2d4-f59e-4eda-25f5-49475952e89c","OpaqueRef:37eccaa8-7371-5762-181b-9221a1f3cdbe","OpaqueRef:b5337a5f-8bd6-7c38-19fa-78b2dfe69869","OpaqueRef:c75bb9b3-7413-aa27-4188-ba2a88e56822","OpaqueRef:42163f5b-56b3-9e8e-ee1c-568efc8f5585","OpaqueRef:78482840-d3ca-b1b0-0c45-53a75b7824f9","OpaqueRef:05cf5f8c-0219-db92-26a1-29047a37c972","OpaqueRef:4fc1bf13-e0be-d634-8559-8b19c590afba","OpaqueRef:618815a8-ec46-44b9-06f4-0d53ecfb1fbd","OpaqueRef:32b9bc96-01b8-dd88-a59d-3294434bcf10","OpaqueRef:a7d2f695-623b-686f-25e5-e470bd6373e1","OpaqueRef:4322c6ea-1807-3e88-4104-269a8510c62d","OpaqueRef:1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004","OpaqueRef:a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c","OpaqueRef:78f71ff6-7c64-3281-44b9-025cf751e185","OpaqueRef:44847e22-2d67-3744-0698-506f6a8243e9","OpaqueRef:7e5e9fde-3ee4-7cf1-4756-915f745b4914"],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aaa00ab5-7340-bfbc-0d1b-7cf342639a6e","$type":"role"},"OpaqueRef:fb8d4ff9-310c-a959-0613-54101535d3d5":{"uuid":"fb8d4ff9-310c-a959-0613-54101535d3d5","name_label":"vm-operator","name_description":"The VM Operator role can use VMs and interact with VM consoles","subroles":["OpaqueRef:cb68795a-8d1c-f2bb-6869-4946fd2df840","OpaqueRef:1839c84a-cc70-8ca7-c500-f2d85b30aac4","OpaqueRef:eb5f0341-f8a6-e605-9433-d85031bb2770","OpaqueRef:da8ebe60-05d9-260e-84f8-b13dafaf518d","OpaqueRef:ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251","OpaqueRef:6523834f-9b0e-f8b9-2417-43e0fc980cd1","OpaqueRef:df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597","OpaqueRef:632bc7c1-60f2-a9ec-2db6-77992be390a1","OpaqueRef:73ef731b-d2b8-a643-f02a-276577b88b3f","OpaqueRef:e9008880-3714-e128-fcd5-d95cb8ee790b","OpaqueRef:efef35a8-cf3d-5f27-e7ad-a2f6f5202dac","OpaqueRef:52684caf-e375-6caf-3396-62bcd5134d0c","OpaqueRef:f39da662-3800-921b-a6d2-237aa094b51f","OpaqueRef:9fea0775-bfb0-bfd3-ea51-8d64335d23c5","OpaqueRef:9dd59816-dea5-9ea6-d863-53ddeae637c8","OpaqueRef:d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64","OpaqueRef:9eaf06ef-8f42-4832-7099-e5a63d32a87d","OpaqueRef:fd7dc035-3957-b7a1-f7e9-905f9f523ff4","OpaqueRef:cb82f07a-4829-4df9-1817-2e6979df85a1","OpaqueRef:daa86366-a0f6-b130-2d3d-77fe1355d6a3","OpaqueRef:91a8843e-12a6-4b4a-2d43-12db6b326490","OpaqueRef:bb22da75-1be1-172d-d8fc-1a1d7c45e425","OpaqueRef:ff06fa4e-8ca8-799a-f189-9cce85f6de90","OpaqueRef:95a849f8-0df0-feb8-7f87-4db6bf42da08","OpaqueRef:15dbefed-137f-5c07-a484-8f1ba24fb156","OpaqueRef:a3181fc3-eb26-baa4-ddf9-a6c9f2af5812","OpaqueRef:966296b4-fccd-e24b-96e7-d849e9aeb629","OpaqueRef:e8564257-d2d5-cfdb-03cc-93d65e6fbaa3","OpaqueRef:cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51","OpaqueRef:bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c","OpaqueRef:868dae0b-7f24-6fde-fc5d-0efebefe3c16","OpaqueRef:7193632f-b165-b0df-6eec-2e71f08aa430","OpaqueRef:38d061c2-1df2-dbbb-c049-44bc0b68eb1b","OpaqueRef:606450c8-c382-ccf0-2505-0ac239ad4adf","OpaqueRef:945bb27d-4f1f-d1ff-0e32-baa566437bb4","OpaqueRef:2c8931b8-0efd-9380-aa53-ab086ba4a2cd","OpaqueRef:0f9390a9-fd1b-1f93-d557-738545a56943","OpaqueRef:defae495-80af-75ac-d7de-a87a7dfcde9d","OpaqueRef:2e0163e9-7ec0-4088-aea5-688b3188b974","OpaqueRef:b0104ee0-e56e-e24a-01c9-be7b31ebac3f","OpaqueRef:daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4","OpaqueRef:ee19a249-eb0f-2076-81a7-8fe7cbff99b8","OpaqueRef:c43079a6-7821-364b-4269-05745d93e29a","OpaqueRef:4a544977-600a-957b-28e2-3b578998c8f5","OpaqueRef:24182612-bdde-08d8-8548-7a8922b40d59","OpaqueRef:0c393fa2-41f9-c981-5581-eb3000f8316d","OpaqueRef:5fa8a325-b230-e422-624d-78faf5473eda","OpaqueRef:19a7836b-75be-43f1-9f23-856f2be12fc3","OpaqueRef:c4dfc733-e053-1074-1a54-5cbc33ddf686","OpaqueRef:7d443d66-a509-ddd4-daf9-8f5c4ba55b4c","OpaqueRef:6ad192de-f028-0771-7f5b-bd20a8fe4caf","OpaqueRef:1421d041-f186-04a8-be92-a1b91244eba4","OpaqueRef:a66cba35-0b84-5261-664f-39c0d9ed54c4","OpaqueRef:e2cf5c12-4316-3fde-fdee-1f962e52a24f","OpaqueRef:f181149a-5c39-d532-a32d-b4c0cbf30f76","OpaqueRef:31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f","OpaqueRef:532e25ef-d282-4334-8145-2e7b0573c7b6","OpaqueRef:87e03946-2afb-f82b-7c4c-648c5f68bcb0","OpaqueRef:a62dfce5-4367-62b4-2b47-f178439fa685","OpaqueRef:5ff08560-8064-5ddb-b549-9c57ceae4cd8","OpaqueRef:d0c0c85c-c3e0-5012-0a48-59d9c2d517c0","OpaqueRef:b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3","OpaqueRef:66fa6648-3999-7a19-20c9-a25827d96b8d","OpaqueRef:0b7902b4-8ad6-b117-efbb-c2c2f056e009","OpaqueRef:2bf43b36-87e9-a224-4f48-9378843e4650","OpaqueRef:761f5f58-389c-d42b-185b-27d3649589e6","OpaqueRef:7a7b22ac-e5d5-cea0-a320-857896f593e4","OpaqueRef:f64ba22a-a70a-57da-34a6-adde7f50b686","OpaqueRef:182167f3-6dc0-b2c6-0ddb-2264903634cc","OpaqueRef:96052543-180c-6280-5b15-f2cc3cc4b089","OpaqueRef:eaf5e80c-79cc-aed7-f41c-23ea41568a39","OpaqueRef:acbd6ba4-b816-8e9c-9298-cae8b10234eb","OpaqueRef:0a581d00-0a14-6c1a-eb08-aee55c2a02fc","OpaqueRef:e61fbfbb-27a5-9b4d-c763-e9222b04d2fa","OpaqueRef:7f2c447a-558b-085b-53f4-15e9bde0bbec","OpaqueRef:acb54550-5aba-4e19-612e-12fa420b5687","OpaqueRef:f2eb9161-758d-0fb1-d254-0d20c628c865","OpaqueRef:35b648f4-a14e-5d25-fb59-57c74efda911","OpaqueRef:d40676d9-ddd6-21bc-cde1-e61e9e340cbf","OpaqueRef:433e5373-291c-2ea1-5b7e-81157e537309","OpaqueRef:074922ac-6eb0-c3b9-795b-62ef8efa69b7","OpaqueRef:cf2ec962-5270-cf53-d7ee-c29b07d2eb67","OpaqueRef:694efbc2-ae2c-5110-66c3-6a790f9f4179","OpaqueRef:5b0b6fc6-b286-89fe-4915-9f8fd82ebe41","OpaqueRef:e9de48a1-e723-e998-5aa2-856511ddd799","OpaqueRef:51f79664-2471-8018-6975-c75f214995f8","OpaqueRef:da9e6d7f-1d0a-50ef-1a87-8ace46f5be45","OpaqueRef:39ffaa22-27dd-5241-7880-ea677905cf86","OpaqueRef:552e253c-3b23-b27a-08b9-8342ba2c7aa9","OpaqueRef:6c815ba2-1dc8-c9da-9e17-61367f52328e","OpaqueRef:d2446ff6-79b3-58d0-1428-0dbe75485624","OpaqueRef:c35132f9-9d6b-4d83-8814-386c304c5b02","OpaqueRef:8eb4a4e6-e48a-310f-6850-cdf1fe544858","OpaqueRef:6692b21c-f620-f0e5-dbf2-dee1294645f2","OpaqueRef:090b0fa9-c127-16e5-4c17-4d08b4126ac3","OpaqueRef:03e94bb0-c911-2f70-33f8-b41aae2c6c18","OpaqueRef:b63d6fef-2e86-46e2-432e-3810c30a3fa0","OpaqueRef:fd737c61-91a8-e31f-49c9-ac46ef649b95","OpaqueRef:120c9250-46ec-3a62-fa14-99923beac495","OpaqueRef:398b78fb-3fe4-77aa-0c1a-9813c4f82308","OpaqueRef:76f60054-8565-3e4e-8f56-8a0d10e7b319","OpaqueRef:2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba","OpaqueRef:d1068e76-7374-9cf8-7189-03e003acf7c8","OpaqueRef:c9d198f0-f2bc-2be1-3d96-298db54fc798","OpaqueRef:2abfa053-fde1-2b41-3f57-42d9bf4fa586","OpaqueRef:d7ea15b2-0664-1cd5-dc30-7c49a546ae80","OpaqueRef:e2203194-7c7f-1b58-83b8-965b7c88898c","OpaqueRef:fe22cf0c-dbf4-50c2-8eab-9f9ab233142f","OpaqueRef:7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a","OpaqueRef:07de6fc1-c0cd-9b21-36c3-5baccf8d66ce","OpaqueRef:91d91080-a0b6-52e1-6c47-f19344682005","OpaqueRef:e35d6b89-5c97-f156-31c9-e518d3388659","OpaqueRef:530fe816-39e5-b429-2034-eed4c4463bea","OpaqueRef:6560fc11-49fa-5009-b9d6-0ec78e323867","OpaqueRef:ce8c8758-07cd-04b4-8086-945682e2b949","OpaqueRef:bb97a595-e5af-1b54-9397-9252a92e5d35","OpaqueRef:1bf80bec-4d61-7551-907b-63dfdb72c416","OpaqueRef:bc0653a4-e028-efba-fae8-e5b17731c375","OpaqueRef:539f0c4e-7084-9181-9fe7-4ed8e2c32095","OpaqueRef:6ee3304b-df34-a1cd-3e11-530d22b55642","OpaqueRef:c374b534-db7c-2c7e-f405-b061d3adc23d","OpaqueRef:006a72c8-531f-e719-3fdc-69f8b5c5f8df","OpaqueRef:4d842444-22ca-0ae0-365f-96b9de2639a1","OpaqueRef:4b46d426-0071-da23-974a-d20ba16379eb","OpaqueRef:2b5a7aab-29a5-b3cf-2d91-944fb2d22e66","OpaqueRef:9801533b-f160-629a-a994-e742e7971455","OpaqueRef:7033b792-890a-4ca5-0314-d6e8866d98ff","OpaqueRef:bf00c330-4ef3-1109-c17e-cf69d8996cf8","OpaqueRef:e58e85dd-0873-8df8-bf0e-a78ad73a0d83","OpaqueRef:7c284010-cae5-10b6-b321-ec149287a8c6","OpaqueRef:cd2c87ac-2763-dd45-0e22-b563622e5c9b","OpaqueRef:7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7","OpaqueRef:f78d82f7-c143-7172-096e-ad50798f475c","OpaqueRef:e4aac618-ccf9-4592-c23d-f829bbcf563b","OpaqueRef:08cfa7e7-f341-4a78-6035-87d5741d02e8","OpaqueRef:5103be90-76c6-cffd-3512-d622d93a74a2","OpaqueRef:6b28edf5-7612-be94-cccb-b7f2993b9104","OpaqueRef:d6645112-98c5-829e-d842-8d0241d909d8","OpaqueRef:a31fb120-d59f-d003-f445-557c6d40f0b5","OpaqueRef:54014da8-4ef9-638c-1089-074874d47231","OpaqueRef:f094e5cd-c351-cdcd-01a2-a9c9ee14941e","OpaqueRef:0e32a766-a0a5-00a3-0058-0bce4987d801","OpaqueRef:d632d605-4171-f42a-7898-62245cc28f04","OpaqueRef:4b7ea29b-eec1-c56a-304a-b68c88799fed","OpaqueRef:1165f711-b47e-76ec-dbac-4c225b4b9ddf","OpaqueRef:1b53cad1-0fb1-6b52-0875-c7f999a1a02f","OpaqueRef:009895d6-2a35-f2b9-5dbb-fca46c208424","OpaqueRef:d533db5f-b3c7-5053-942c-1ec28b1f25b0","OpaqueRef:86098675-bebe-e1d7-c063-988b04499e45","OpaqueRef:b798b24d-1067-d2ea-7fc9-f147d916ba47","OpaqueRef:b4992000-119b-662e-22d3-ff2ba2a55c0b","OpaqueRef:2694b9ba-caae-160a-1fee-c4401f7eb871","OpaqueRef:20192ebc-be70-d33d-c163-1770a526a958","OpaqueRef:76df53df-4e08-fd20-80be-8382f055f47a","OpaqueRef:c58e0892-cfab-2364-6b9a-fccf603a29e6","OpaqueRef:09f1a83f-01ae-ed9c-c781-98517d1dd3d2","OpaqueRef:d1e16e8d-92e0-ccc1-c85c-c2244e99ae74","OpaqueRef:27e9e225-a5b7-ca6e-75d3-5b4cb52d3627","OpaqueRef:9a38b22c-0f0e-1bb3-323f-04b4445a3700","OpaqueRef:b6a98068-1e06-e7fe-1010-269343afa0b2","OpaqueRef:f0155615-65ba-9161-c3bb-cac286bae2b1","OpaqueRef:d3c5c812-c278-9827-8e2a-24bbdab201a7","OpaqueRef:531f332b-49aa-b429-6f50-4d803205f792","OpaqueRef:fcf7dbbf-286d-73ec-e9e6-6c329a627d01","OpaqueRef:b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e","OpaqueRef:04e56171-2991-e1d5-f908-d6aa4ea70bfd","OpaqueRef:e57f5462-775a-c7cb-0098-6f5d512abece","OpaqueRef:f35f5fa2-d886-5a8f-a5e4-1e41237e20d9","OpaqueRef:d2071cda-fa54-9231-7db2-fddb3112eae7","OpaqueRef:0423894e-139f-10e1-855f-4a550175b615","OpaqueRef:f089614b-16db-9e28-06f9-0e0ca7be5320","OpaqueRef:941a6983-a5e2-3772-ed58-1e2aa29b1436","OpaqueRef:47999374-b082-b73d-09d1-37bb2836d522","OpaqueRef:5937be6e-540c-da35-a08f-45b6bee6950c","OpaqueRef:dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded","OpaqueRef:84aed1e7-ce75-1c04-9221-b41765e7ec25","OpaqueRef:e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8","OpaqueRef:e66a5a0f-8c8e-d629-ba92-1b1f0374498e","OpaqueRef:12c18c1a-3ecf-e8bb-646a-eaaf975c5813","OpaqueRef:fad90582-c075-9587-bf3e-d24d76692ba8","OpaqueRef:13a11943-2578-a1c5-b1f4-c5e25c5d070f","OpaqueRef:7a156321-0c6b-a61c-3cda-d9e580d35fbd","OpaqueRef:b005f138-d13c-ebd2-bdd5-1e4550f3ba91","OpaqueRef:c00d0e92-ac51-2914-ce0f-01292607e440","OpaqueRef:12dca690-28d3-8620-e4b6-a16beff24246","OpaqueRef:2d90779e-cf44-eaf2-b452-f843b56b58fe","OpaqueRef:79f576b0-2f82-8786-3ef1-7e90ef0fbd56","OpaqueRef:9a8e1a97-9547-897b-dddb-5753fc491146","OpaqueRef:ea2e80cd-54dd-4feb-e266-4c4a8acf47da","OpaqueRef:1f843368-7d86-3388-f5e1-37e7451690e3","OpaqueRef:612d96c0-c6d3-073f-c3af-a9a471d6372e","OpaqueRef:6a10a27b-0a5b-721a-3a2a-931542eb779f","OpaqueRef:c86ce51a-f6ca-5685-503a-e8f988d8f3a1","OpaqueRef:ee92c33f-0176-2f81-7850-d8274d543cbd","OpaqueRef:05e477c2-6a5d-f53a-ccf3-28f472a19553","OpaqueRef:f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490","OpaqueRef:40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f","OpaqueRef:654a657c-4f57-0385-b0b5-f11bc085f916","OpaqueRef:b0d95391-a938-cc75-303e-543e6a5c07a5","OpaqueRef:a46d2d35-0fdf-7a75-6025-ee689f25773c","OpaqueRef:b1dcf01e-9390-4ad1-0f2f-8263dd9476c5","OpaqueRef:bc55b6ed-c4df-4cf5-2118-8421fca4dfba","OpaqueRef:caf63646-b530-624d-9fa6-d6b1ecfb1c82","OpaqueRef:ab0341ec-b69f-cafb-c519-d7f18a922839","OpaqueRef:398b1e83-6b06-7664-4efb-ee31275c86f7","OpaqueRef:e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333","OpaqueRef:15b8f6a0-991c-7089-1ef9-13e4f77e2556","OpaqueRef:4a622ed6-a1ca-4eba-7b12-59480d645194","OpaqueRef:61c08156-de47-7f68-035a-7cb5e42de46c","OpaqueRef:7823a440-ae2e-1c9a-d613-1aca2913b5cb","OpaqueRef:e80dcb82-245c-feaf-ac10-679cabce6713","OpaqueRef:c7c664cb-1efc-9388-91d0-28100c085aaa","OpaqueRef:3f3480e8-c6fc-b6bf-05f0-a6377ab50db1","OpaqueRef:b5189a1d-4fd2-8953-ab9d-8b970655f47c","OpaqueRef:02e0b886-32f4-1f25-d83e-6e88ab11e20f","OpaqueRef:9cd6b930-8313-fbc2-7214-083a6d9ab81c","OpaqueRef:92e5a45a-edd9-635c-8929-b4956320c847","OpaqueRef:dbc87b09-5539-c8fd-9c4e-0659a7217325","OpaqueRef:cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f","OpaqueRef:866c4d54-adbc-cd19-1540-183e7ad9bdd4","OpaqueRef:43bed9f5-4bb8-551b-8540-922b40e0dd42","OpaqueRef:d1ff49a6-6866-db73-c3ed-6faeb5460a6f","OpaqueRef:4c98e491-6bb2-7ce7-460a-3a9471bbd598","OpaqueRef:9ee4625a-e02c-100a-c621-43852bfa3d29","OpaqueRef:bf77e796-59d3-18c0-116e-a30e514e47ef","OpaqueRef:c70f5e19-5cc8-09b0-900e-752d10caae49","OpaqueRef:67bfa576-0e16-1fbc-3916-7c7258702d23","OpaqueRef:181f66ab-cc92-1fc8-b3a9-8b4bb1f74acf","OpaqueRef:7a3744a6-02a0-fe82-1201-31301aea1f2f","OpaqueRef:d24ca751-b516-edff-736c-3e6b0719115b","OpaqueRef:f458e427-5928-9057-c219-df99153fc075","OpaqueRef:24b924aa-926c-879e-d2c1-fe778e82ccee","OpaqueRef:b6096493-b47b-3bc4-a9b9-6d670a304017","OpaqueRef:4788c0d8-8cc1-11b0-c43c-0ea2b02689b8","OpaqueRef:60d79042-e0b2-74fb-5fc3-25ff0e9f200b","OpaqueRef:0391a375-885e-a621-2ed0-c5a05e6ba6d1","OpaqueRef:e0953596-a798-5359-5ae9-dc7d3cc23411","OpaqueRef:0c318a73-1355-8297-1aa7-7b59652d83eb","OpaqueRef:499c5989-c80a-2567-6f8b-50b0cf1f569a","OpaqueRef:0054aad9-6816-61a5-593d-ffcf68fe7c51","OpaqueRef:80305d17-0b56-9f66-6d8c-40abe30a928a","OpaqueRef:d443b5d9-94b5-50ce-a635-1ca03b81bcb7","OpaqueRef:ac16b434-b718-b77f-e797-4c8032c9a21b","OpaqueRef:de8bf714-f486-251e-f6f5-e566b8de1a9e","OpaqueRef:b58c1211-94fb-cc3f-668f-9c64343d5ef6","OpaqueRef:d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0","OpaqueRef:da44ea34-34ce-eee1-0fe5-e2fbd374087c","OpaqueRef:c0eeaefd-fce4-4122-bf5f-6548c7627ecd","OpaqueRef:4eb6785b-2126-b2f8-2c55-f5a0b59694e9","OpaqueRef:f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473","OpaqueRef:7862cac7-5a00-3e1c-fa98-1ccad464efde","OpaqueRef:7afd9229-b870-bc5f-9dd0-c8e3aae1edd8","OpaqueRef:ab13cd53-fee2-e913-c1d5-d8a73d183c04","OpaqueRef:50c826b9-553f-0f9d-6ec5-e56c4bfc700e","OpaqueRef:dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9","OpaqueRef:e558eee8-cc61-ab94-2838-d11ecb19b9de","OpaqueRef:cca9c4ef-8dc4-3928-6973-1001fefddcc1","OpaqueRef:1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb","OpaqueRef:78595ea9-9a7b-2bb2-b7ac-888947bb5f71","OpaqueRef:05540a9b-fd89-62d4-15c2-569bb74a45c9","OpaqueRef:8624fdc6-5a79-3477-2f2b-a692d687856f","OpaqueRef:6c868e70-45f5-7510-e697-31565da1b645","OpaqueRef:50baf2ac-cd2d-8c58-6b49-7d922a38d506","OpaqueRef:b8d7db71-88c3-3973-0f76-afb5ea8758b2","OpaqueRef:b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa","OpaqueRef:c7b3adec-b936-8480-8162-4d0176e80494","OpaqueRef:1611b4a5-6d76-0608-be83-bb85cc0f4401","OpaqueRef:76add74c-9a76-ec09-e9ba-062f5fad673a","OpaqueRef:1eb1cfda-f398-99f9-2b7b-5a186bfb5769","OpaqueRef:48e48870-e314-22ff-23e7-9c81e0a09de8","OpaqueRef:6b99cb7e-9854-bbfe-13c4-23c85b58cd27","OpaqueRef:3b17375c-d99f-b75d-771a-d6bd526bc732","OpaqueRef:330de495-5f10-90ae-9985-a622287978cd","OpaqueRef:6950f134-0be9-1cf8-a418-b84f72b5c550","OpaqueRef:2da47eda-326e-bc79-2991-4178a7f91aa2","OpaqueRef:07e67067-0db3-473e-f720-1b13cb7165cb","OpaqueRef:59d3a529-afca-f562-204f-bc882519cfc6","OpaqueRef:6745eaf1-b724-7ba1-6adc-6714d87ed055","OpaqueRef:fb5f1cd9-639c-fe4e-736e-59f602bd6769","OpaqueRef:63f5ab90-88e3-b9c7-869a-ad1e4725f6c8","OpaqueRef:8b2811fe-bf52-d656-379d-c4dc786d2863","OpaqueRef:f075184a-6d67-aeee-23f9-4af9fb3fdc70","OpaqueRef:72acb54c-837e-f60b-5b73-54258ba6f8ce","OpaqueRef:fc02d213-9915-5d79-f9f9-77981d5e7e61","OpaqueRef:fe33f11b-7386-0023-20a5-5d66b81d1550","OpaqueRef:ea08f6e0-a317-ec4e-b863-b58cd69e6f55","OpaqueRef:07ba3c3a-6d81-f137-050b-460a090cd95e","OpaqueRef:c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e","OpaqueRef:b8e13938-03be-2a5d-fc3b-425b8f7966f9","OpaqueRef:d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8","OpaqueRef:6419de42-529d-e793-ac14-e1afc0f4d3d7","OpaqueRef:36ef005e-7879-0edf-e7d9-54b5b5f6e467","OpaqueRef:ff2c84a9-3ea0-6792-fe4d-3215c397f3b0","OpaqueRef:18d16a24-b68d-43cf-69d2-7a5868998306","OpaqueRef:6d180e8a-3fc3-4459-2526-189b389da794","OpaqueRef:2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4","OpaqueRef:4a2b195f-f477-f143-e4db-f96913abdf9a","OpaqueRef:4af3e675-5dd0-08c7-b67a-414e85223d40","OpaqueRef:cd17195a-9274-0b74-bc8e-3f0c916bfbce","OpaqueRef:864a54cb-981c-8bba-19eb-2c76ce406359","OpaqueRef:37fed550-72a4-a8c8-5468-8bc3bfd1554e","OpaqueRef:800592e3-30ac-bc00-4274-f9c23e335d57","OpaqueRef:699638de-d890-04ef-ea8e-5473742ceb88","OpaqueRef:5dc61f97-020c-3958-1531-9d950ebad058","OpaqueRef:0f104484-8054-bb43-0685-27030f6bebca","OpaqueRef:7122efb6-3045-2da0-b503-1524b692a5d8","OpaqueRef:79a22291-0fca-eeef-d23a-1b796b2123aa","OpaqueRef:fc844b8c-44f7-0a47-136b-9fdae98759df","OpaqueRef:539ace0a-c714-562d-f153-ce5df5f92265","OpaqueRef:a714bc2b-93c4-7785-d84c-53e40aaabc73","OpaqueRef:caed3120-c6e2-8d1f-4498-6aa7d966a575","OpaqueRef:aae2577c-a1a7-9646-9bc5-a9c082108eab","OpaqueRef:4bfb1275-7c46-d751-4ab4-f19c5e83bd41","OpaqueRef:1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f","OpaqueRef:96fbe84c-1cce-dab3-c396-bb28962a8aab","OpaqueRef:0b3c3543-7504-c5eb-4673-31e51971670a","OpaqueRef:94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e","OpaqueRef:8dfb37f5-203f-2ea4-597f-7c350f6233f1","OpaqueRef:3f9bb6d6-db4e-b115-a2c3-adf553886983","OpaqueRef:2770c2e9-7d35-17f7-5f34-9814d604a3c7","OpaqueRef:9760f691-5295-ecc8-bf2c-3865249c1f6b","OpaqueRef:a2a09fcd-1313-554c-9051-f4dd1c4474fe","OpaqueRef:4a16dd04-0fbb-e5bc-af88-01046c72c54b","OpaqueRef:9350ea5c-ca28-1ece-9c6f-1c4ab918d119","OpaqueRef:d529b00f-b546-b67d-c50e-f0d216b2ef56","OpaqueRef:1ea042ad-d922-f7cb-90ab-9ac09e011670","OpaqueRef:0d87eda4-f5b4-1c19-ff98-f1bc171afb8f","OpaqueRef:6d3feec4-ad36-040d-b555-8c49b8015bf2","OpaqueRef:4c964b58-b18d-599c-140c-3d7e6fee0949","OpaqueRef:fa09b51e-0da5-a900-4da2-33752ad8a112","OpaqueRef:bebace76-69a8-cb40-82aa-5ecd4b882075","OpaqueRef:f05760c3-46d9-9cf5-8831-330943a33ce2","OpaqueRef:9a9b62f1-2fae-cc0c-03ff-147b35e7917e","OpaqueRef:e39b5c55-fcf4-41de-74c9-a38e278e85db","OpaqueRef:ca111bd4-768b-a624-f752-4d4a51ab2471","OpaqueRef:66ce4f5c-82d0-457d-dced-433bb8b5229e","OpaqueRef:16474184-4484-6193-a7f4-2baa521a56e7","OpaqueRef:cf7a0ae8-7440-c6ac-ef72-5454aadc19a7","OpaqueRef:dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4","OpaqueRef:1c6ae07b-8cc7-3334-d143-40fba15e5d1b","OpaqueRef:26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1","OpaqueRef:38d676a9-1eca-992f-8768-65856d28ec39","OpaqueRef:76efe753-ae98-21ef-4ee0-c06be1ed6bf8","OpaqueRef:7ace0159-c007-b95d-d43e-90af54f7b4f3","OpaqueRef:0511b768-32ca-e60a-83d1-6089ee037abd","OpaqueRef:8b731fe2-d6fa-2b5a-738b-aa1501e2a00c","OpaqueRef:c2e03e88-ade6-a5ff-db5b-b92e0bc2e580","OpaqueRef:627b53af-258b-eaec-feec-9a1cfb5e915d","OpaqueRef:d6b2a0b1-1991-b740-0d48-242d5b3463b2","OpaqueRef:5502ee79-ceec-099c-740a-42e395dac81b","OpaqueRef:b498514f-0f98-ec60-df87-f1feed07141b","OpaqueRef:6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e","OpaqueRef:0cd88229-8eb6-dd98-09cc-8635498afcd2","OpaqueRef:58ac1559-04a8-f7ad-2224-53591cacfcb7","OpaqueRef:d7450039-1e27-7ac8-acc5-a698cb19a525","OpaqueRef:ae095db7-583e-cfc0-2cd3-db791d3b1671","OpaqueRef:8ddf8bd4-4146-aab7-5e60-37b3c59f060d","OpaqueRef:00f9116e-139e-c5c6-e647-308230cc9f5a","OpaqueRef:70787b4c-26d0-f9c5-9b31-1c9e291035c4","OpaqueRef:14ea86d7-eccf-8790-fe68-2cee27f915c0","OpaqueRef:7f355dde-ac8c-9a02-ce96-16a1a08c0836","OpaqueRef:1c6bfef7-d9c9-4b53-4184-c72d5896e910","OpaqueRef:8ae37793-9d90-d55d-bd48-328657eac262","OpaqueRef:4748a78b-fbc6-06d6-9a9b-0fee76a37e42","OpaqueRef:922f39f2-c948-d0cb-813a-8fb675fe1209","OpaqueRef:5e5aa3af-ee5b-3973-2b26-cf1882900d7c","OpaqueRef:ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b","OpaqueRef:ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3","OpaqueRef:d13394ed-05a5-8a53-ba59-20525ec873be","OpaqueRef:c71d068d-24c4-6d68-8439-3078c968141e","OpaqueRef:bceff7d6-7267-91cf-fef1-eaa65de886e2","OpaqueRef:b9a4873c-7e19-ebec-d524-f1d69da5324b","OpaqueRef:a433bf84-7725-f4e2-6f89-31054403dd87","OpaqueRef:e254be14-8fe4-916c-b287-25b8be1a6502","OpaqueRef:fae19164-aa28-38ee-e1e5-a3a3082729bf","OpaqueRef:86907190-69ac-4a19-df3b-6678644e64e8","OpaqueRef:1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f","OpaqueRef:b132a88b-b242-3cf8-0459-4bd858b7dc93","OpaqueRef:505fcb18-5888-5bf2-75be-6235aba2e6ee","OpaqueRef:d5b5a870-45ee-4124-ec9d-3f16ed2c7db7","OpaqueRef:ac809817-a5db-b4a2-0b14-3ba7c0ff2165","OpaqueRef:7958cefd-9fdc-f836-fedc-22f89fd06ce2","OpaqueRef:176db48f-09fe-625d-8d3f-0588f796751a","OpaqueRef:dff728c2-2d9f-e6ff-57ef-a0e31f0927b6","OpaqueRef:7c4df9d1-26c8-8986-35f7-a1ec7f4804d2","OpaqueRef:0a561bf4-9228-cb18-0ce3-7d2a0d302800","OpaqueRef:21d14229-6be0-a401-6580-4ff98d459f7c","OpaqueRef:f850300a-1604-59c2-5cab-0a1380798fbd","OpaqueRef:3c6c94b2-f160-ff62-be39-e917e080f3d2","OpaqueRef:26e20184-1c7f-5596-b456-22ff28f2562a","OpaqueRef:5f5d40d5-5171-dacc-b6ff-497744f2d6cf","OpaqueRef:92d0e454-d08f-fe30-f288-33ac5e9a7193","OpaqueRef:724d860d-c6b0-aecd-97e5-a28c944cf21c","OpaqueRef:5dc23f7d-7008-5d99-0cd6-780fff26f7ad","OpaqueRef:69cd7eb3-9c03-a6ec-1942-77ccfef89687","OpaqueRef:49f55d27-bdb9-ea99-50c4-bab151c7ed0a","OpaqueRef:d687b364-5ce1-9ab4-0594-1568e7962192","OpaqueRef:b433a6d4-aac5-d6f5-429c-fb6e4c3fb586","OpaqueRef:4fe83cfe-641d-099a-ca6d-921f4f3744ae","OpaqueRef:0b33ba31-b80b-e074-7262-65ad91ff9313","OpaqueRef:10d871c1-c065-b472-0fef-42311c39c9b9","OpaqueRef:a8bfecf9-7e65-f0b7-f087-a59845369df3","OpaqueRef:4bf590bd-2137-55dd-90cc-1735a84da788","OpaqueRef:1e34f646-0d83-991e-6d57-53abf105526b","OpaqueRef:ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33","OpaqueRef:57eb64a6-04db-6995-2a99-3eaf96be5263","OpaqueRef:915e4dab-9537-bfa4-fac9-85addfb3eeac","OpaqueRef:4f7a7bae-a4ae-9024-ffd2-3bfe706c266b","OpaqueRef:2ef836d2-b9dd-5a23-c794-2e7589f36be0","OpaqueRef:e0ca9324-e1ad-9179-5282-f7f36641bb1d","OpaqueRef:067511f8-54b7-de65-b4d9-dfb2089ac41a","OpaqueRef:1bb99abf-a34e-2a07-c87a-871871b84931","OpaqueRef:051d2068-cedb-9155-c92d-1233e9fbc3e5","OpaqueRef:1fcbc379-fbbb-f702-d1ba-7158bead56df","OpaqueRef:520813ad-5f48-b68b-da3a-36a944d0a2d5","OpaqueRef:1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d","OpaqueRef:383340ed-7b65-ec60-3687-cd5b9a22dd4d","OpaqueRef:c6cd9483-96d1-5a4e-8272-58d62903ba13","OpaqueRef:c935c5c6-6224-1650-60e8-8fe70daaa5c4","OpaqueRef:d9b34a9f-bd57-74ef-44ca-d5dc42e857bc","OpaqueRef:603d3545-44ef-8bee-7e48-7a9ec1fe0f4c","OpaqueRef:2ab258fa-f9f0-53ca-1a97-e319259e63d8","OpaqueRef:92828369-5a7f-e0cc-ff8a-20ce4e6a182d","OpaqueRef:cf2e8f13-038a-7d7b-5021-c881eadac803","OpaqueRef:ff8c2c53-80b5-03a6-88c0-ced5d925bc2f","OpaqueRef:027a3a06-ffc7-fc53-f107-b8ca78294326","OpaqueRef:76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d","OpaqueRef:bf7f941b-03a6-dfab-5f08-5f1d5e046a8d","OpaqueRef:91b38c06-f1f7-acd5-a6f4-5e10e9decb8e","OpaqueRef:a8accf3c-5e68-c1ad-347e-4b14086a0a3c","OpaqueRef:0298a263-16aa-fa51-84d9-bf231b03257c","OpaqueRef:b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8","OpaqueRef:92424d6e-6c8b-e6cf-52f8-c1ecb18ac162","OpaqueRef:b9b352a0-6f8e-854e-71b3-04d31b6483fd","OpaqueRef:e9d70821-4d5b-c6e8-0769-305ea28819df","OpaqueRef:70a45f35-52c8-981e-b5b4-756e9dd422bf","OpaqueRef:29f5163f-f0c4-062e-38a7-e652c0ed5987","OpaqueRef:fa0065df-12b1-d909-9f18-0ee0e5905322","OpaqueRef:0075f8e8-9cd8-3a4f-89e8-f53ff0121590","OpaqueRef:1cd93736-a017-b50b-a7ff-f84557f73b64","OpaqueRef:52e94cd3-f9ef-225b-9d23-133e521e39ec","OpaqueRef:43bd2f40-5b02-5f5f-f2de-3355ce64f08d","OpaqueRef:fa8c8b9e-82c2-1edd-0621-58b876ecb786","OpaqueRef:25efdd5a-5572-0245-6f76-edd4d8ba87f2","OpaqueRef:43f83df9-8b01-dd53-da07-19c763c45316","OpaqueRef:b73723e7-74ed-dae5-a160-a31e2f96f64c","OpaqueRef:3763d099-4a3b-3905-7603-8e5a98dadcc6","OpaqueRef:7a01d196-5bf3-d888-ca53-f7c308d79daa","OpaqueRef:5b8ed78a-2c12-c8e0-c706-c960dcac0e02","OpaqueRef:f5e84d5c-9173-a902-ca07-aaa980e78e7a","OpaqueRef:f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088","OpaqueRef:da79116d-658d-77fa-9595-51e744744bd9","OpaqueRef:7b46c171-b1db-a323-3b76-457ea95372d2","OpaqueRef:363f935d-b9b0-96d5-6286-c7c611a0a65a","OpaqueRef:58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f","OpaqueRef:2072d2a6-0563-826f-693b-1d3d46c4d4ed","OpaqueRef:ad8c841c-d7b0-29d0-bbfc-e102b0cf29db","OpaqueRef:ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c","OpaqueRef:fd67acf4-c454-2308-703d-b1c548829599","OpaqueRef:531b14e0-799d-158b-2741-b0722c44ef81","OpaqueRef:8deb8400-477c-d1ed-5e43-3a57cf19fc18","OpaqueRef:bb254b62-2ce5-d18a-ea89-b9951d43540e","OpaqueRef:dac42fca-3f2b-9f12-984c-094ee89b8a3b","OpaqueRef:bee385fd-db51-c95f-5dc9-e0cb27058fe4","OpaqueRef:898a10e9-4929-667d-1f69-6084d82f95f2","OpaqueRef:0093bc43-35e1-4d14-5ae8-0d48a7c7696d","OpaqueRef:8e640d08-58a8-3220-9ad7-2f6ce7ffcb54","OpaqueRef:f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3","OpaqueRef:4cf2b236-677b-9ed4-7466-d0e1337a0549","OpaqueRef:b3db5cf5-cf31-a92b-edbf-05fe326e9844","OpaqueRef:e3370dac-0910-8f7f-a68c-aa87ce861519","OpaqueRef:68d3594f-230f-4fb6-5177-fd760bca1be6","OpaqueRef:6ad64869-f5c6-00aa-b2b8-8281cfd24e88","OpaqueRef:ab7a8ddb-0a66-957e-b67c-2623919816b3","OpaqueRef:70178e57-b50b-900e-a105-0b50d5961ad2","OpaqueRef:84facb10-a76d-d587-f1b4-fd1bfffbbd13","OpaqueRef:f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f","OpaqueRef:5e271507-05bb-a4b4-2aa1-45a1d678a3c3","OpaqueRef:9b129852-5a6b-938a-6657-d7fb8c0fd1d8","OpaqueRef:1e749289-18cf-7c15-dfef-7c563ac409d8","OpaqueRef:182ecb35-daed-9ee8-efc7-cacab112b589","OpaqueRef:13cd1c58-7c1e-1ab4-65ed-9ff82b888688","OpaqueRef:8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0","OpaqueRef:a06fc2d3-81c9-76bd-b9b3-d00973854b22","OpaqueRef:29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2","OpaqueRef:941b5182-310c-b1c2-fbf4-1409241add9a","OpaqueRef:975df00f-053b-2fe4-70ce-41b80b2814f9","OpaqueRef:bfdf5c96-6ada-a5ef-cc47-ea345940662e","OpaqueRef:f825b844-c7b4-2900-cf4a-5cd059d26dc1","OpaqueRef:1681d655-5c34-3b05-1c48-771660b0f3a6","OpaqueRef:53ca7741-71e1-66c1-c42d-6d9351b41551","OpaqueRef:39bad4e7-597f-2ecf-93c6-39b8d945de5d","OpaqueRef:a1421191-fe98-3281-a792-d201a2de2bf6","OpaqueRef:1f9dfeb1-7d99-1409-e6eb-d9522e1ca3d6","OpaqueRef:d535938f-a852-c579-75fd-f7064065ecbb","OpaqueRef:d91aa452-182d-736b-a240-4414fe355a93","OpaqueRef:7d45ebaa-c032-5209-010f-bda83e9995c0","OpaqueRef:13657521-3100-32e7-3d38-a1c0df842c77","OpaqueRef:4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259","OpaqueRef:55377552-76fe-e589-d4cf-02f64f49f350","OpaqueRef:d36bf25c-cffc-3785-e9a4-1d6dd826cd03","OpaqueRef:53e3bde4-ef9a-5933-62c6-89a992f399b0","OpaqueRef:216b0366-cd42-24db-57b1-3c8fce70e4ba","OpaqueRef:5beceb5c-5880-09dd-3eba-d5133d463f9b","OpaqueRef:7bd495ef-abbe-3363-4f68-64a70eed83eb","OpaqueRef:61fbb0bd-b453-3369-98a3-53f4f8a7fe6c","OpaqueRef:00056679-3372-9b8e-6488-10d423edb0ad","OpaqueRef:64067282-0137-c32d-3ae4-7b20b6a93ad1","OpaqueRef:97015ed2-cf9c-9ff4-9d34-b1ae9a377788","OpaqueRef:c492097b-20fb-0584-6559-893d4d35c82d","OpaqueRef:de3c3005-8901-9213-2c61-45e6d489c801","OpaqueRef:0fd4e192-6082-738e-c2c5-27cf2cb5f467","OpaqueRef:3f4867e1-9401-bc2a-a260-5561bfe8d08c","OpaqueRef:3ad57875-8d33-5adf-7184-24f4df2b6981","OpaqueRef:5c07d45f-d9f5-207e-1e3e-70c0b5abc69b","OpaqueRef:73ba289d-8cab-51d5-a8f6-ae42be46b61c","OpaqueRef:88447749-f966-bae0-a649-ad12c1391cc2","OpaqueRef:9799e20d-f5ed-6371-1fd7-6ad3fb1df729","OpaqueRef:b06ba59a-e556-7f5c-902a-871a8004c149","OpaqueRef:6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2","OpaqueRef:522142a2-c5ce-4095-85b3-13bf2ca36175","OpaqueRef:2fa043de-5e00-c856-7ceb-0b0a266f0a4c","OpaqueRef:dc84c131-adf9-d460-4988-294d88b46924","OpaqueRef:f559123e-c887-6ab7-49cb-675b315d69d7","OpaqueRef:9de70f7b-12d1-6625-5970-894335e62431","OpaqueRef:7c2f2761-86e0-d176-8791-cccfe25d8700","OpaqueRef:e4fd9189-1c6e-8b2d-690b-8f7923b2477e","OpaqueRef:1069a4f0-17e8-cde0-bf04-ffa08d2878ea","OpaqueRef:3d8acc2e-3bf1-9245-35dd-493184d88770","OpaqueRef:c41cce49-6fcf-44c2-1c59-99d127686bff","OpaqueRef:03c65989-d970-28e1-2d72-8cf1ffb06a95","OpaqueRef:2a8ae027-e709-28ac-8de5-56adc284daa6","OpaqueRef:396ee7a7-5e5c-9399-d89a-427109e6ab21","OpaqueRef:cfbc0c25-0514-0a40-1c57-9e063667d33e","OpaqueRef:a6d34497-1418-7a05-f792-60f8cbd8f7c5","OpaqueRef:6fcc710b-6217-2c38-f2bf-2455728b2b0d","OpaqueRef:805b2422-565d-0957-0898-5d5a078ee501","OpaqueRef:3d022c5c-d53d-333c-706d-c175777da30c","OpaqueRef:09593fa1-1b87-1d23-8e61-bf79b93236fc","OpaqueRef:3cc87704-357e-0ea7-e918-dcae6f73fa8d","OpaqueRef:49bc2875-5acd-548c-8823-bd2c6c2322d2","OpaqueRef:ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae","OpaqueRef:57fb16f4-51fc-7798-1845-070ca26ba746","OpaqueRef:544ea348-b989-8d3e-6042-13999626c5e0","OpaqueRef:34c8cdd1-6c69-506d-2e10-1a051d5f7d60","OpaqueRef:db6de8b4-bfd5-c3a5-905f-94106bb5a2ab","OpaqueRef:c1207e93-3ffe-9166-4ff7-80b763788417","OpaqueRef:2804a382-939d-876d-c50a-dc18d199bfe8","OpaqueRef:4b182675-bbcd-8a69-3671-5803cb22b481","OpaqueRef:e01a098d-e8fc-81fa-764e-c07a342d219a","OpaqueRef:2036d54b-2179-ce69-a922-9b2d5cce6916","OpaqueRef:58e3edff-51a7-7143-020c-11e3821c18cf","OpaqueRef:283982da-ebce-2cc4-faeb-4bee137761bc","OpaqueRef:f17f15a8-882f-380a-1e75-7074e4e51e1e","OpaqueRef:d6271e34-14a8-85dd-28dd-f090b63ff588","OpaqueRef:499f5734-a8d4-4c55-83af-f0b1e2a9d67e","OpaqueRef:89e757f3-4619-1fe9-1b1b-3afdc986af84","OpaqueRef:62801603-a12a-b8ae-eb7a-0890725c7310","OpaqueRef:8673c2e3-429c-7599-35e6-e9a804892d2a","OpaqueRef:3ee06801-74e6-08cd-b237-7636668ced4f","OpaqueRef:af9bf6e8-720f-8eba-b583-5ee68d14de90","OpaqueRef:a212b9b8-aa8a-6243-180e-4270a46cec2f","OpaqueRef:a1492f6d-0469-f57f-074a-88453672a2de","OpaqueRef:e756d67d-3c2b-a489-3c3e-763748f886e4","OpaqueRef:39b6f8c8-bfbf-b629-5d92-6594e516730a","OpaqueRef:c18535f5-924a-5a11-7522-c8ba88f23eac","OpaqueRef:acf9e287-4110-4a5a-c753-7925bb43678f","OpaqueRef:d7435e71-c22c-3fdd-bbcf-33849cc039c3","OpaqueRef:3057ba41-6ab0-21bb-c4b9-2a53ded43c5a","OpaqueRef:e69c0e91-d962-f102-9200-5b00d7ff495a","OpaqueRef:784956f0-eb8f-e687-118f-5ee8fabc47dd","OpaqueRef:d0e2be89-4c37-3974-149e-c06d8358e0be","OpaqueRef:c317c9dd-000f-61e2-91f4-cafc36cc3f65","OpaqueRef:dc719910-a701-5800-fe16-18e3cb4fc00e","OpaqueRef:0dfef1da-7988-b6a2-0752-20b8dfcad6b5","OpaqueRef:a7f5635e-754b-2c47-0182-b2cd6eaa6a4c","OpaqueRef:21c41bf0-8c5e-b6de-5dc7-f71cb751a430","OpaqueRef:37548ef6-abc2-9f49-7fd5-efe65a5b5448","OpaqueRef:5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044","OpaqueRef:6682964a-92f7-ece2-30b1-583be0f69b15","OpaqueRef:eb0f1687-b443-2873-e3c5-3464197a2a50","OpaqueRef:ca439f57-3fa8-ee93-f2a5-5d4f72cbb907","OpaqueRef:28069750-7807-2fa6-9bc2-bae7456f5de9","OpaqueRef:450af311-5669-e4c7-6ca3-b3350172eafb","OpaqueRef:9fb5a1d6-e53b-24af-bb7c-49a942f0bc65","OpaqueRef:ad6b4de5-bb53-c27c-f34a-033542cbcf61","OpaqueRef:cf8f0a82-e845-5f00-68b3-d0905d31e8be","OpaqueRef:fc7cd54b-2fde-4fe7-4caa-e152930fed06","OpaqueRef:d619c5a5-074a-a015-1c1d-a0a0e62bfaa5","OpaqueRef:84d71586-5ce8-2364-c74b-0017c93b82b2","OpaqueRef:0e28a706-8960-58a7-4f9d-c3b0eea64a0a","OpaqueRef:e3637139-7f57-56b3-b8e8-4fd736f11588","OpaqueRef:164a66c7-e0b0-7fd7-ccd3-d13042353c78","OpaqueRef:88fc5a8b-e5f3-612f-7a32-e5a651abd04b","OpaqueRef:0ed8495c-b53e-7951-d041-14df9605e6f8","OpaqueRef:88f8cb5b-b92e-0ab4-307d-2ed4ea447475","OpaqueRef:e7d108ee-2082-98c2-acb6-5884f39f3056","OpaqueRef:62084664-4e15-5ca5-99eb-00007ed70717","OpaqueRef:f2df7036-f418-a415-ddca-d31ba6ff611e","OpaqueRef:4b368ad8-3eec-31b3-5fb0-d1070507cfd0","OpaqueRef:b7db64ab-97ce-4dfb-45d7-f505756fe4a8","OpaqueRef:25d4aaa3-582d-7e6e-eb43-8fba9c42568c","OpaqueRef:ff776240-dbd0-9ef8-f34f-42c85cf01b3a","OpaqueRef:559b520f-dcef-e6b3-6a21-3a74d84d3fa8","OpaqueRef:1a37ccfd-f500-bd50-bb25-f20411bfbb35","OpaqueRef:086121bb-2bba-06e9-bab2-6b7414b0e4eb","OpaqueRef:2fd85a90-74c9-15e6-d4f7-e59c7f584ac4","OpaqueRef:54cb0e64-7459-04bb-621b-4f16f42ba21f","OpaqueRef:9e2e9082-8361-adb3-1e6b-51178368e9a5","OpaqueRef:f1ab04b2-6571-fff1-66c0-720ca6c50bfe","OpaqueRef:616109ba-d73f-ad1f-a4ac-4a1454b7b742","OpaqueRef:8295c108-ca0f-bc2e-1d77-d580d9dcbdff","OpaqueRef:65e61767-fa64-53ff-0056-6491eaec7d1c","OpaqueRef:b2dc1fd3-b84c-d045-efe6-174954f53ad0","OpaqueRef:a534c226-3cce-06b6-3a28-cbf339c0e385","OpaqueRef:a576f048-226e-b605-b15d-f388fd903210","OpaqueRef:676b455a-f9eb-78e3-a1ef-a1ea437f6110","OpaqueRef:3d4411cf-b855-6140-b1cd-1c6b7a0ebedd","OpaqueRef:a0184446-8631-4833-3651-61ca4293ca60","OpaqueRef:b277f808-66e4-fd82-2300-bfae51e59679","OpaqueRef:babc2b36-7a11-3b3d-03da-fc3130f49a35","OpaqueRef:2a3d6942-c2df-0472-5241-52530708b8c7","OpaqueRef:7e23cac0-90ad-45ba-9a62-c7b6a6e4002c","OpaqueRef:b8f9b23f-65b1-75c0-289b-e6e2872ee81d","OpaqueRef:2adc8291-5288-6526-87a0-0b15ec4ca4fa","OpaqueRef:01844316-a78d-e6f9-a7b7-53a939235f5d","OpaqueRef:b1d61197-b0bf-cb30-2120-627c956a97f7","OpaqueRef:74ef5702-8a42-a7a6-8951-a28ae3b64197","OpaqueRef:ab2230c7-8d4b-357d-6a26-62f7c9b0bb27","OpaqueRef:ce3646e1-704b-6b7e-f468-45a009bec12d","OpaqueRef:c911cfca-5100-8446-b631-2d6f3861350c","OpaqueRef:f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4","OpaqueRef:883d4710-6475-244f-cce7-d17282265fdc","OpaqueRef:56a2f957-6b1b-7d8d-00f6-931d4574f63b","OpaqueRef:bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f","OpaqueRef:ba6f9682-ea22-caf0-ea6a-cfad6774390d","OpaqueRef:04ac5338-b19b-6833-ed3c-b992d6ef8328","OpaqueRef:917258fe-6427-e960-98e8-9f3bbd88bd22","OpaqueRef:2de23583-b3f1-6e39-4bd9-4c7bc7afc977","OpaqueRef:46c7e8d5-56f3-060f-2995-2d969d216c2b","OpaqueRef:06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5","OpaqueRef:c2bc934e-8ece-de2e-3288-7ccbab1e257d","OpaqueRef:e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a","OpaqueRef:3b5deb71-ec32-2485-4913-089fa04f1ace","OpaqueRef:c7b868fb-53dd-4ff6-9b83-fe096e910d82","OpaqueRef:3516a06e-5a67-7f1f-4c83-40b3d7e914f0","OpaqueRef:439dce99-b067-9c88-7a0a-06e581f8f502","OpaqueRef:8e7a8bd9-9ac6-a612-477a-12c33c6af2d3","OpaqueRef:2cc96f79-52aa-dafc-494e-5d04eb63b66e","OpaqueRef:2966c4db-3b8e-7257-734f-0969cf20819d","OpaqueRef:312ca834-68b2-6c0c-7608-9fa37ab92a80","OpaqueRef:de6644f5-642f-de4c-0a6c-643305b2d412","OpaqueRef:532b0c67-7dc7-8ea3-2e90-ed2db7b2a1db","OpaqueRef:b36dd591-9707-22a9-dd2f-f4ace0f16c2f","OpaqueRef:73dcfb11-02cd-8963-408b-dad8c5e273f9","OpaqueRef:4422e4c7-9256-2554-f5cd-20e747e332de","OpaqueRef:18dad7b9-c57e-c98d-7d17-f0bf1d7e06ab","OpaqueRef:412f975b-5a60-92d0-a171-2bedf499c0f5","OpaqueRef:4e914b35-ddeb-12b2-31fd-e2fbcbec010d","OpaqueRef:588d746c-9967-8e54-df7e-a825bc64f73a","OpaqueRef:e9a7fba1-deec-3478-2098-26b97828c750","OpaqueRef:93dea749-bb50-7546-5ecb-90cfbf26165f","OpaqueRef:b37bf5ec-05a4-e2bb-1586-d973d208a2f8","OpaqueRef:0c82bef6-ba72-0bee-b924-84feb84b2e77","OpaqueRef:6753d0e3-8e17-9f9d-cb5f-9642c2b7685d","OpaqueRef:d70b794c-05dc-77a5-b720-51a905de3f2b","OpaqueRef:0462f07f-cd50-abd0-7965-0ec55f5a126b","OpaqueRef:a28dd0cb-fcd5-33bd-7657-278e5f653471","OpaqueRef:35767a4f-af9a-af62-5f51-ed250f684d25","OpaqueRef:2605b766-9cb9-cdb1-53e6-2431e711af44","OpaqueRef:f5b86d13-b503-2c7a-83cc-b54896afb752","OpaqueRef:266d1cf3-ea34-44ba-fc97-cf4cd876d7c8","OpaqueRef:2cdb0f4e-685a-814d-03e5-19c4fbe5aa64","OpaqueRef:a2f2b2b8-188f-f022-69bf-fa443d89bb58","OpaqueRef:a4c9dc80-0070-0067-a1d3-339b5081adc0","OpaqueRef:f6184e4a-0be4-97e7-6db6-bced99fcceff","OpaqueRef:771f7157-33cd-a8e1-f5a7-ae23af63c750","OpaqueRef:7f545d78-e772-030f-2e95-7d3b998d3000","OpaqueRef:b99da77a-522d-4bff-9013-ae981fceda83","OpaqueRef:0a01091f-7913-54d3-94b5-3ef26f90b0f9","OpaqueRef:dfc8a1f1-60c9-373b-c6a3-56c0712754a7","OpaqueRef:e3e174f6-5c33-6385-bd9b-09213a73e701","OpaqueRef:f1fc3e4c-3f63-876c-f667-2c06a3321e7c","OpaqueRef:3230d646-65ff-59d1-0400-5f58231c0664","OpaqueRef:68130225-5eb6-b36c-43f5-c81acaba8b68","OpaqueRef:9ad29a74-1eec-8937-697a-ba3679e4f48d","OpaqueRef:3fa0a161-a6ab-4adc-3749-2aab29e2b445","OpaqueRef:1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e","OpaqueRef:924d34e6-51df-0ef3-fdd7-065a11af80c4","OpaqueRef:ccc6e989-a50d-3530-743f-d13e7f05e5dd","OpaqueRef:bbdc09c5-8729-4aae-9945-66b292cf2aa1","OpaqueRef:62c6badc-ea63-3832-3641-cd0eccca0304","OpaqueRef:18c1913b-2356-df02-11ce-ffd2da0e4170","OpaqueRef:e522fa0c-7c50-cc59-c88d-0dedc9aac2aa","OpaqueRef:58fd2438-7368-a4de-3b67-e5ad53708171","OpaqueRef:baf1360e-2dc9-be3d-08bf-252994e78ccd","OpaqueRef:acfb9201-52d6-3881-04f4-83ae8376300e","OpaqueRef:fa7a9290-f86a-2185-3c2e-9a4c5ad746ae","OpaqueRef:0f5f27b8-5098-237f-e2b5-14c9512fb0d6","OpaqueRef:360c10c1-5edb-2dba-9e8e-f1440e9a948c","OpaqueRef:4950f5c0-e772-3c03-61a0-6b00f291448d","OpaqueRef:3acba506-ce1a-b39b-b637-3731b50880e9","OpaqueRef:4894cd8b-7d71-407e-2852-1b7f4aa166cf","OpaqueRef:311d925a-6070-271d-a724-0948552a654f","OpaqueRef:44d764dd-95db-e4d9-4cf7-1250f3ca601d","OpaqueRef:937b2b79-813a-a286-cbeb-da09e3cf4c90","OpaqueRef:44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a","OpaqueRef:92967fef-88ab-15e4-f16c-9f042b3191f4","OpaqueRef:a3f5b9a0-e36f-41d8-65dc-8f7bd095293b","OpaqueRef:9986f58f-773c-c701-6b97-7e99b0135124","OpaqueRef:d450902b-de9f-7867-c98c-f912e6a80cce","OpaqueRef:7936813a-24d4-e749-f89a-dec7286a0b99","OpaqueRef:81239256-3acb-c6e7-b689-9eb4e54c9956","OpaqueRef:745095db-fdd8-7025-f9b3-839b0fa846f9","OpaqueRef:7187f8da-4c69-cc67-9718-1f98b825c1ea","OpaqueRef:601664bc-64ea-312f-6bc1-543ca1a0177c","OpaqueRef:729d8740-7096-6a5c-49dc-6c4cec96500f","OpaqueRef:d4ab22c9-f134-2607-284a-56381333719b","OpaqueRef:2a06d13d-ff22-2dc7-98a6-a97c7c723481","OpaqueRef:a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44","OpaqueRef:a14d9994-ac84-07cd-e0c3-621d7c92f0aa","OpaqueRef:56bc2594-ff11-2fa7-8f46-18178bd1010e","OpaqueRef:396bfd0b-b63b-449b-75e0-f4998ed9ea1f","OpaqueRef:7a90825c-43d6-122c-0805-408ff98a5064","OpaqueRef:af48eae9-9c88-9a3d-e57a-46250c33abf8","OpaqueRef:174af546-476b-1579-44ef-07346dbbe4b1","OpaqueRef:2aa40daa-f640-4198-a8b2-20fdfd44947f","OpaqueRef:7555a731-bf5e-2494-cf68-90a0d7594b06","OpaqueRef:c3ae01b1-a370-4ec3-d91e-4d8533a89f86","OpaqueRef:7b14057e-435b-da4a-f335-5710072124bb","OpaqueRef:a35e33f5-26cf-7f6f-7bee-2e69c34448f0","OpaqueRef:37f9a250-fd67-56db-e2c1-7f7c7abfd9fb","OpaqueRef:a5ac4a15-20df-40aa-1d01-c668e8746d7b","OpaqueRef:93340db9-eacc-0e12-9151-854745d49cf7","OpaqueRef:9dd43118-a078-1317-8a87-83ebed088133","OpaqueRef:63b9ae45-0e59-c1e6-d3dd-f596860071a2","OpaqueRef:67af93c7-dfb9-98ce-ccbf-80fb7e828e27","OpaqueRef:23af0178-71be-1c09-5f09-4eeb59279dec","OpaqueRef:738acc9f-a221-a9c7-c008-4f324a609677","OpaqueRef:6467bf45-4441-2fb7-299d-da6dc598310b","OpaqueRef:5cd9ce80-b26e-54b1-0dfb-07431f9fde11","OpaqueRef:c614ec0d-cd31-33ba-21b3-43a6c498d0fc","OpaqueRef:34e576e5-27b1-46b3-bf30-25a663835fec","OpaqueRef:0620c7fe-5acd-626f-cd9d-79997b854a2d","OpaqueRef:f6607652-9394-52ba-ced3-f360b1257e6f","OpaqueRef:5d76223e-2db4-b433-f8c2-cb2a5d864efa","OpaqueRef:27378730-81dd-d327-639d-17495c264bc0","OpaqueRef:f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103","OpaqueRef:4d21470f-106f-4e87-5109-1054f40a15e1","OpaqueRef:8cbe8380-7d8b-e296-35f5-7941ad540728","OpaqueRef:26a2c50f-a17d-dea1-7046-e09d4e4beb2d","OpaqueRef:95d99f45-12d3-b0d4-5b95-3cf4e910c7c1","OpaqueRef:a954a18e-5251-f3c7-1bcc-0a7e3e532d13","OpaqueRef:b2bf107a-c001-a3f5-0f11-d9b414b636e9","OpaqueRef:d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d","OpaqueRef:cfaaa17f-391d-2412-ccd2-afab25ccab6d","OpaqueRef:bd37900a-e6b0-90df-dabf-871311560070","OpaqueRef:d237f558-5bcd-610e-0028-4fe71d0ac595","OpaqueRef:703ca7dc-8dcc-6df0-2473-7337caa1c17b","OpaqueRef:bac565df-939b-c536-dfc4-35ea64950ad1","OpaqueRef:d19eb620-7260-c930-6729-682529ab1d12","OpaqueRef:1ee62327-b580-693a-9635-78d27050c1b6","OpaqueRef:657ed104-a6cf-c0f5-1813-48f0bb17da4e","OpaqueRef:01a743e5-a3b5-f318-7228-4ce8fbcc6662","OpaqueRef:019dc5fb-c3ad-90db-7e97-160d3fcf1970","OpaqueRef:70276941-c1fc-66ff-97b9-6a2f0e4417c2","OpaqueRef:36d74e5e-a510-68e7-45b1-ad0a7c5f47c1","OpaqueRef:6d0a3227-0550-f146-7aac-34259c56d99e","OpaqueRef:86989975-8b09-5f82-f068-64f59f226978","OpaqueRef:dfa26a90-9ce7-1147-7ddb-d79dd9d9c105","OpaqueRef:e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd","OpaqueRef:96a4dd40-ee88-1987-3286-55c08bf66316","OpaqueRef:de4a5cb5-c8d9-3319-92bb-a0a0f560067e","OpaqueRef:9c0443d4-538d-c2ef-af03-55f9e033f6b1","OpaqueRef:0e630687-91e7-fb14-32b8-d7813d4dd5ac","OpaqueRef:024ec9db-e7f1-de4f-23be-6c3e46f8a797","OpaqueRef:dd56ce4e-8a5f-0776-a0ba-682b1dda3b84","OpaqueRef:795faa64-e21d-c19b-a175-7c28d7af1935","OpaqueRef:eba43944-c9fd-a3ca-d20c-d39c09923eeb","OpaqueRef:ea191445-996a-32e0-33dc-2819c43657a2","OpaqueRef:5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a","OpaqueRef:eb7f2515-ab28-d9d3-17eb-285a28545189","OpaqueRef:621bc530-1dd3-dea9-a82e-498f86b5664a","OpaqueRef:2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b","OpaqueRef:206c900b-40cd-e97c-ef4d-1f20a3d67e1e","OpaqueRef:9366d110-4c7a-e528-014c-8cfd1bc735bc","OpaqueRef:2d30096c-51e6-487a-b95f-5d3b49e0922d","OpaqueRef:29ccccc0-78ea-f639-1829-f5579b6cc3fb","OpaqueRef:6979048a-de08-4e61-feb6-b5ad950b3b88","OpaqueRef:17c2c3d4-6525-49ca-28c3-efc752410e1c","OpaqueRef:8a499ea6-d0bc-3218-e271-c5507d8f8a96","OpaqueRef:1ec637f9-4157-5b26-dabb-31f3331c2959","OpaqueRef:b57b8c50-f2af-943e-a514-8340681aaaeb","OpaqueRef:c99755dd-030f-7f04-48b2-eadf25ecd92d","OpaqueRef:dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f","OpaqueRef:8fb7479c-f838-e29b-4693-651f31819f9f","OpaqueRef:5a960d88-c30e-3aaf-f79c-e58803f4e544","OpaqueRef:3561ecde-dba0-fb56-62b0-1a6101833aca","OpaqueRef:dc25c20a-f553-ff0d-b49c-ddb96d8e2e61","OpaqueRef:795b843c-c4cd-3690-a224-e36e687ef07c","OpaqueRef:43572bd0-288c-6290-e52d-9f12253f662e","OpaqueRef:e73ccdb9-0003-bcaa-8576-fd587f6abd36","OpaqueRef:4a4afbc3-0b2c-f5f2-6967-6afb51cf903e","OpaqueRef:f52942a8-5ac5-2c56-c42a-79d9c3ec2c82","OpaqueRef:6113a2d6-4c9c-48a9-dc31-1c7b590e3cde","OpaqueRef:3fdd414e-97c6-a7a2-c297-871f5f05ee3d","OpaqueRef:a00e1125-aa6c-2a9d-2cef-3000e5357ced","OpaqueRef:973b22d8-c0b0-834c-ff70-30cdd424d1d8","OpaqueRef:207a7572-567a-8900-16f4-41f9c102bdeb","OpaqueRef:50dc8d5b-e46e-8903-e94d-bffbbf1bccc1","OpaqueRef:3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d","OpaqueRef:1388c828-c07f-9391-a1fb-9cd0653117fa","OpaqueRef:49010e45-7adc-7912-16a1-45bbcd359177","OpaqueRef:7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c","OpaqueRef:43c79c0a-2a5c-0e0a-b10b-5c0847fd888c","OpaqueRef:bf225b3b-1e37-86dd-5922-a04df826dba6","OpaqueRef:8274ff2e-c513-43d6-2a55-ce0057861430","OpaqueRef:0bdee192-3fa7-09af-d3ee-12cd06ebb91b","OpaqueRef:4b3fbad1-a1b2-ccc9-813c-9d6151a9d974","OpaqueRef:d6219686-f85d-245e-c292-f2dab9cf156f","OpaqueRef:cbb0830e-78d6-6db4-b10e-cd1acbffcfd8","OpaqueRef:137475bc-66cc-23b5-4a93-1101da98b268","OpaqueRef:435947cd-5662-5e05-3da1-cb3cb6937448","OpaqueRef:1411712a-41d3-d353-5e92-b977076e1b05","OpaqueRef:2c6424c8-06c4-34fa-1ef3-6f04e5805e1c","OpaqueRef:7588002d-2ebc-c944-8f10-c5c452efb97a","OpaqueRef:36bca930-2c10-ece7-d692-5fd29aca70a6","OpaqueRef:899a5718-836e-bb6f-7f8d-2ada2bbc96dc","OpaqueRef:dd24c4b3-62ab-3d64-f1c9-3c36df94d604","OpaqueRef:26051e27-35b3-e931-521f-cb8806ecf4b6","OpaqueRef:30f950cd-ded7-0c2c-e58c-d782eda3d752","OpaqueRef:ed901fb0-1968-23c6-ec49-bdbda2035014","OpaqueRef:b15fecc5-3baa-5969-d2f3-b883ec5f1bde","OpaqueRef:e83a8360-7f59-c3b8-6799-39fa6509772a","OpaqueRef:47707758-d7e2-88d8-20bd-6f063c40bd18","OpaqueRef:b18bd364-663f-1421-4321-d11d27c5b2c5","OpaqueRef:48ac5191-399a-1660-42c9-754b302eeb84","OpaqueRef:421958db-0318-8810-3244-01f0f855895a","OpaqueRef:154e0584-ee8b-74ae-4e57-b02afd66ba13","OpaqueRef:1a4cfda0-0d18-b966-86c4-b80e7a832211","OpaqueRef:faf17e53-86af-aa3b-93e7-46a7f130d178","OpaqueRef:53a516b7-ac7f-519f-b9e4-b9f79a6a1f58","OpaqueRef:c6e718ea-7554-1841-ffe9-48304dc85276","OpaqueRef:e6e276f5-85c3-01a4-43f6-c7699f4cf723","OpaqueRef:5607864d-8f51-59c6-74a3-cbe8fdf91e19","OpaqueRef:67a5efa1-04cf-098a-f236-30b058cd2f59","OpaqueRef:a1fb1090-0bca-17c8-bbc5-ed82e230cdf0","OpaqueRef:54b50900-4c44-f1b6-edc4-4b9d80e2dc48","OpaqueRef:0002e248-e4da-6542-fb0f-85214c20b145","OpaqueRef:9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835","OpaqueRef:42c1215c-fcd0-e848-88a7-8e9ac7cb001d","OpaqueRef:28f7a03f-0ee3-383d-dcd2-ed2a466f62c0","OpaqueRef:a2c22e5a-4523-2a90-65ed-7501f6d08657","OpaqueRef:93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9","OpaqueRef:ec6018b6-36d9-6815-1de8-7d6fc7e9e136","OpaqueRef:37215355-cf4c-bacb-1e33-1f027fb8c81e","OpaqueRef:8a1a13f2-8137-b095-84f5-ae67e3c3ffff","OpaqueRef:ae118c9d-8c3f-46ad-733e-39af8a3fe63f","OpaqueRef:21882b95-87bc-8ee8-cc2e-653037903827","OpaqueRef:9e6aaac3-334a-9504-3583-2a2f1ecba5b3","OpaqueRef:b9415fe6-a3a1-5cb8-ca85-df89c1304e8d","OpaqueRef:9bcaf150-0b82-265c-2206-1b5f2d672608","OpaqueRef:bb55d298-b018-8a07-a849-bdea9692a88c","OpaqueRef:5e022752-8add-d1bf-4ac1-9c859fd9103e","OpaqueRef:37eccaa8-7371-5762-181b-9221a1f3cdbe","OpaqueRef:b5337a5f-8bd6-7c38-19fa-78b2dfe69869","OpaqueRef:c75bb9b3-7413-aa27-4188-ba2a88e56822","OpaqueRef:42163f5b-56b3-9e8e-ee1c-568efc8f5585","OpaqueRef:78482840-d3ca-b1b0-0c45-53a75b7824f9","OpaqueRef:05cf5f8c-0219-db92-26a1-29047a37c972","OpaqueRef:4fc1bf13-e0be-d634-8559-8b19c590afba","OpaqueRef:618815a8-ec46-44b9-06f4-0d53ecfb1fbd","OpaqueRef:32b9bc96-01b8-dd88-a59d-3294434bcf10","OpaqueRef:a7d2f695-623b-686f-25e5-e470bd6373e1","OpaqueRef:4322c6ea-1807-3e88-4104-269a8510c62d","OpaqueRef:1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004","OpaqueRef:a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c","OpaqueRef:78f71ff6-7c64-3281-44b9-025cf751e185","OpaqueRef:44847e22-2d67-3744-0698-506f6a8243e9","OpaqueRef:7e5e9fde-3ee4-7cf1-4756-915f745b4914"],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fb8d4ff9-310c-a959-0613-54101535d3d5","$type":"role"},"OpaqueRef:7233b8e3-eacb-d7da-2c95-f2e581cdbf4e":{"uuid":"7233b8e3-eacb-d7da-2c95-f2e581cdbf4e","name_label":"read-only","name_description":"The Read-Only role can log in with basic read-only access","subroles":["OpaqueRef:cb68795a-8d1c-f2bb-6869-4946fd2df840","OpaqueRef:1839c84a-cc70-8ca7-c500-f2d85b30aac4","OpaqueRef:eb5f0341-f8a6-e605-9433-d85031bb2770","OpaqueRef:da8ebe60-05d9-260e-84f8-b13dafaf518d","OpaqueRef:ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251","OpaqueRef:6523834f-9b0e-f8b9-2417-43e0fc980cd1","OpaqueRef:df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597","OpaqueRef:632bc7c1-60f2-a9ec-2db6-77992be390a1","OpaqueRef:73ef731b-d2b8-a643-f02a-276577b88b3f","OpaqueRef:e9008880-3714-e128-fcd5-d95cb8ee790b","OpaqueRef:efef35a8-cf3d-5f27-e7ad-a2f6f5202dac","OpaqueRef:52684caf-e375-6caf-3396-62bcd5134d0c","OpaqueRef:f39da662-3800-921b-a6d2-237aa094b51f","OpaqueRef:9fea0775-bfb0-bfd3-ea51-8d64335d23c5","OpaqueRef:9dd59816-dea5-9ea6-d863-53ddeae637c8","OpaqueRef:d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64","OpaqueRef:9eaf06ef-8f42-4832-7099-e5a63d32a87d","OpaqueRef:fd7dc035-3957-b7a1-f7e9-905f9f523ff4","OpaqueRef:cb82f07a-4829-4df9-1817-2e6979df85a1","OpaqueRef:daa86366-a0f6-b130-2d3d-77fe1355d6a3","OpaqueRef:91a8843e-12a6-4b4a-2d43-12db6b326490","OpaqueRef:bb22da75-1be1-172d-d8fc-1a1d7c45e425","OpaqueRef:ff06fa4e-8ca8-799a-f189-9cce85f6de90","OpaqueRef:95a849f8-0df0-feb8-7f87-4db6bf42da08","OpaqueRef:15dbefed-137f-5c07-a484-8f1ba24fb156","OpaqueRef:a3181fc3-eb26-baa4-ddf9-a6c9f2af5812","OpaqueRef:966296b4-fccd-e24b-96e7-d849e9aeb629","OpaqueRef:e8564257-d2d5-cfdb-03cc-93d65e6fbaa3","OpaqueRef:cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51","OpaqueRef:bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c","OpaqueRef:868dae0b-7f24-6fde-fc5d-0efebefe3c16","OpaqueRef:7193632f-b165-b0df-6eec-2e71f08aa430","OpaqueRef:38d061c2-1df2-dbbb-c049-44bc0b68eb1b","OpaqueRef:606450c8-c382-ccf0-2505-0ac239ad4adf","OpaqueRef:945bb27d-4f1f-d1ff-0e32-baa566437bb4","OpaqueRef:2c8931b8-0efd-9380-aa53-ab086ba4a2cd","OpaqueRef:0f9390a9-fd1b-1f93-d557-738545a56943","OpaqueRef:defae495-80af-75ac-d7de-a87a7dfcde9d","OpaqueRef:2e0163e9-7ec0-4088-aea5-688b3188b974","OpaqueRef:b0104ee0-e56e-e24a-01c9-be7b31ebac3f","OpaqueRef:daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4","OpaqueRef:ee19a249-eb0f-2076-81a7-8fe7cbff99b8","OpaqueRef:c43079a6-7821-364b-4269-05745d93e29a","OpaqueRef:4a544977-600a-957b-28e2-3b578998c8f5","OpaqueRef:24182612-bdde-08d8-8548-7a8922b40d59","OpaqueRef:0c393fa2-41f9-c981-5581-eb3000f8316d","OpaqueRef:5fa8a325-b230-e422-624d-78faf5473eda","OpaqueRef:19a7836b-75be-43f1-9f23-856f2be12fc3","OpaqueRef:c4dfc733-e053-1074-1a54-5cbc33ddf686","OpaqueRef:7d443d66-a509-ddd4-daf9-8f5c4ba55b4c","OpaqueRef:6ad192de-f028-0771-7f5b-bd20a8fe4caf","OpaqueRef:1421d041-f186-04a8-be92-a1b91244eba4","OpaqueRef:a66cba35-0b84-5261-664f-39c0d9ed54c4","OpaqueRef:e2cf5c12-4316-3fde-fdee-1f962e52a24f","OpaqueRef:f181149a-5c39-d532-a32d-b4c0cbf30f76","OpaqueRef:31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f","OpaqueRef:532e25ef-d282-4334-8145-2e7b0573c7b6","OpaqueRef:87e03946-2afb-f82b-7c4c-648c5f68bcb0","OpaqueRef:a62dfce5-4367-62b4-2b47-f178439fa685","OpaqueRef:5ff08560-8064-5ddb-b549-9c57ceae4cd8","OpaqueRef:d0c0c85c-c3e0-5012-0a48-59d9c2d517c0","OpaqueRef:b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3","OpaqueRef:66fa6648-3999-7a19-20c9-a25827d96b8d","OpaqueRef:0b7902b4-8ad6-b117-efbb-c2c2f056e009","OpaqueRef:2bf43b36-87e9-a224-4f48-9378843e4650","OpaqueRef:acbd6ba4-b816-8e9c-9298-cae8b10234eb","OpaqueRef:0a581d00-0a14-6c1a-eb08-aee55c2a02fc","OpaqueRef:e61fbfbb-27a5-9b4d-c763-e9222b04d2fa","OpaqueRef:7f2c447a-558b-085b-53f4-15e9bde0bbec","OpaqueRef:acb54550-5aba-4e19-612e-12fa420b5687","OpaqueRef:f2eb9161-758d-0fb1-d254-0d20c628c865","OpaqueRef:35b648f4-a14e-5d25-fb59-57c74efda911","OpaqueRef:d40676d9-ddd6-21bc-cde1-e61e9e340cbf","OpaqueRef:433e5373-291c-2ea1-5b7e-81157e537309","OpaqueRef:074922ac-6eb0-c3b9-795b-62ef8efa69b7","OpaqueRef:cf2ec962-5270-cf53-d7ee-c29b07d2eb67","OpaqueRef:694efbc2-ae2c-5110-66c3-6a790f9f4179","OpaqueRef:5b0b6fc6-b286-89fe-4915-9f8fd82ebe41","OpaqueRef:e9de48a1-e723-e998-5aa2-856511ddd799","OpaqueRef:51f79664-2471-8018-6975-c75f214995f8","OpaqueRef:da9e6d7f-1d0a-50ef-1a87-8ace46f5be45","OpaqueRef:39ffaa22-27dd-5241-7880-ea677905cf86","OpaqueRef:552e253c-3b23-b27a-08b9-8342ba2c7aa9","OpaqueRef:6c815ba2-1dc8-c9da-9e17-61367f52328e","OpaqueRef:d2446ff6-79b3-58d0-1428-0dbe75485624","OpaqueRef:c35132f9-9d6b-4d83-8814-386c304c5b02","OpaqueRef:8eb4a4e6-e48a-310f-6850-cdf1fe544858","OpaqueRef:6692b21c-f620-f0e5-dbf2-dee1294645f2","OpaqueRef:090b0fa9-c127-16e5-4c17-4d08b4126ac3","OpaqueRef:03e94bb0-c911-2f70-33f8-b41aae2c6c18","OpaqueRef:b63d6fef-2e86-46e2-432e-3810c30a3fa0","OpaqueRef:fd737c61-91a8-e31f-49c9-ac46ef649b95","OpaqueRef:120c9250-46ec-3a62-fa14-99923beac495","OpaqueRef:398b78fb-3fe4-77aa-0c1a-9813c4f82308","OpaqueRef:76f60054-8565-3e4e-8f56-8a0d10e7b319","OpaqueRef:2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba","OpaqueRef:d1068e76-7374-9cf8-7189-03e003acf7c8","OpaqueRef:c9d198f0-f2bc-2be1-3d96-298db54fc798","OpaqueRef:2abfa053-fde1-2b41-3f57-42d9bf4fa586","OpaqueRef:d7ea15b2-0664-1cd5-dc30-7c49a546ae80","OpaqueRef:e2203194-7c7f-1b58-83b8-965b7c88898c","OpaqueRef:fe22cf0c-dbf4-50c2-8eab-9f9ab233142f","OpaqueRef:7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a","OpaqueRef:07de6fc1-c0cd-9b21-36c3-5baccf8d66ce","OpaqueRef:91d91080-a0b6-52e1-6c47-f19344682005","OpaqueRef:e35d6b89-5c97-f156-31c9-e518d3388659","OpaqueRef:2b5a7aab-29a5-b3cf-2d91-944fb2d22e66","OpaqueRef:9801533b-f160-629a-a994-e742e7971455","OpaqueRef:7033b792-890a-4ca5-0314-d6e8866d98ff","OpaqueRef:bf00c330-4ef3-1109-c17e-cf69d8996cf8","OpaqueRef:e58e85dd-0873-8df8-bf0e-a78ad73a0d83","OpaqueRef:7c284010-cae5-10b6-b321-ec149287a8c6","OpaqueRef:cd2c87ac-2763-dd45-0e22-b563622e5c9b","OpaqueRef:7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7","OpaqueRef:f78d82f7-c143-7172-096e-ad50798f475c","OpaqueRef:e4aac618-ccf9-4592-c23d-f829bbcf563b","OpaqueRef:08cfa7e7-f341-4a78-6035-87d5741d02e8","OpaqueRef:5103be90-76c6-cffd-3512-d622d93a74a2","OpaqueRef:6b28edf5-7612-be94-cccb-b7f2993b9104","OpaqueRef:d6645112-98c5-829e-d842-8d0241d909d8","OpaqueRef:a31fb120-d59f-d003-f445-557c6d40f0b5","OpaqueRef:54014da8-4ef9-638c-1089-074874d47231","OpaqueRef:f094e5cd-c351-cdcd-01a2-a9c9ee14941e","OpaqueRef:0e32a766-a0a5-00a3-0058-0bce4987d801","OpaqueRef:d632d605-4171-f42a-7898-62245cc28f04","OpaqueRef:4b7ea29b-eec1-c56a-304a-b68c88799fed","OpaqueRef:1165f711-b47e-76ec-dbac-4c225b4b9ddf","OpaqueRef:1b53cad1-0fb1-6b52-0875-c7f999a1a02f","OpaqueRef:009895d6-2a35-f2b9-5dbb-fca46c208424","OpaqueRef:d533db5f-b3c7-5053-942c-1ec28b1f25b0","OpaqueRef:86098675-bebe-e1d7-c063-988b04499e45","OpaqueRef:b798b24d-1067-d2ea-7fc9-f147d916ba47","OpaqueRef:b4992000-119b-662e-22d3-ff2ba2a55c0b","OpaqueRef:2694b9ba-caae-160a-1fee-c4401f7eb871","OpaqueRef:20192ebc-be70-d33d-c163-1770a526a958","OpaqueRef:76df53df-4e08-fd20-80be-8382f055f47a","OpaqueRef:c58e0892-cfab-2364-6b9a-fccf603a29e6","OpaqueRef:09f1a83f-01ae-ed9c-c781-98517d1dd3d2","OpaqueRef:d1e16e8d-92e0-ccc1-c85c-c2244e99ae74","OpaqueRef:27e9e225-a5b7-ca6e-75d3-5b4cb52d3627","OpaqueRef:9a38b22c-0f0e-1bb3-323f-04b4445a3700","OpaqueRef:b6a98068-1e06-e7fe-1010-269343afa0b2","OpaqueRef:f0155615-65ba-9161-c3bb-cac286bae2b1","OpaqueRef:d3c5c812-c278-9827-8e2a-24bbdab201a7","OpaqueRef:531f332b-49aa-b429-6f50-4d803205f792","OpaqueRef:fcf7dbbf-286d-73ec-e9e6-6c329a627d01","OpaqueRef:b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e","OpaqueRef:04e56171-2991-e1d5-f908-d6aa4ea70bfd","OpaqueRef:e57f5462-775a-c7cb-0098-6f5d512abece","OpaqueRef:f35f5fa2-d886-5a8f-a5e4-1e41237e20d9","OpaqueRef:d2071cda-fa54-9231-7db2-fddb3112eae7","OpaqueRef:0423894e-139f-10e1-855f-4a550175b615","OpaqueRef:f089614b-16db-9e28-06f9-0e0ca7be5320","OpaqueRef:941a6983-a5e2-3772-ed58-1e2aa29b1436","OpaqueRef:47999374-b082-b73d-09d1-37bb2836d522","OpaqueRef:5937be6e-540c-da35-a08f-45b6bee6950c","OpaqueRef:dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded","OpaqueRef:84aed1e7-ce75-1c04-9221-b41765e7ec25","OpaqueRef:e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8","OpaqueRef:e66a5a0f-8c8e-d629-ba92-1b1f0374498e","OpaqueRef:12c18c1a-3ecf-e8bb-646a-eaaf975c5813","OpaqueRef:fad90582-c075-9587-bf3e-d24d76692ba8","OpaqueRef:13a11943-2578-a1c5-b1f4-c5e25c5d070f","OpaqueRef:7a156321-0c6b-a61c-3cda-d9e580d35fbd","OpaqueRef:b005f138-d13c-ebd2-bdd5-1e4550f3ba91","OpaqueRef:c00d0e92-ac51-2914-ce0f-01292607e440","OpaqueRef:12dca690-28d3-8620-e4b6-a16beff24246","OpaqueRef:2d90779e-cf44-eaf2-b452-f843b56b58fe","OpaqueRef:79f576b0-2f82-8786-3ef1-7e90ef0fbd56","OpaqueRef:9a8e1a97-9547-897b-dddb-5753fc491146","OpaqueRef:ea2e80cd-54dd-4feb-e266-4c4a8acf47da","OpaqueRef:1f843368-7d86-3388-f5e1-37e7451690e3","OpaqueRef:612d96c0-c6d3-073f-c3af-a9a471d6372e","OpaqueRef:6a10a27b-0a5b-721a-3a2a-931542eb779f","OpaqueRef:c86ce51a-f6ca-5685-503a-e8f988d8f3a1","OpaqueRef:ee92c33f-0176-2f81-7850-d8274d543cbd","OpaqueRef:05e477c2-6a5d-f53a-ccf3-28f472a19553","OpaqueRef:f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490","OpaqueRef:40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f","OpaqueRef:654a657c-4f57-0385-b0b5-f11bc085f916","OpaqueRef:b0d95391-a938-cc75-303e-543e6a5c07a5","OpaqueRef:a46d2d35-0fdf-7a75-6025-ee689f25773c","OpaqueRef:b1dcf01e-9390-4ad1-0f2f-8263dd9476c5","OpaqueRef:bc55b6ed-c4df-4cf5-2118-8421fca4dfba","OpaqueRef:caf63646-b530-624d-9fa6-d6b1ecfb1c82","OpaqueRef:ab0341ec-b69f-cafb-c519-d7f18a922839","OpaqueRef:398b1e83-6b06-7664-4efb-ee31275c86f7","OpaqueRef:e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333","OpaqueRef:15b8f6a0-991c-7089-1ef9-13e4f77e2556","OpaqueRef:4a622ed6-a1ca-4eba-7b12-59480d645194","OpaqueRef:61c08156-de47-7f68-035a-7cb5e42de46c","OpaqueRef:7823a440-ae2e-1c9a-d613-1aca2913b5cb","OpaqueRef:e80dcb82-245c-feaf-ac10-679cabce6713","OpaqueRef:c7c664cb-1efc-9388-91d0-28100c085aaa","OpaqueRef:3f3480e8-c6fc-b6bf-05f0-a6377ab50db1","OpaqueRef:b5189a1d-4fd2-8953-ab9d-8b970655f47c","OpaqueRef:02e0b886-32f4-1f25-d83e-6e88ab11e20f","OpaqueRef:9cd6b930-8313-fbc2-7214-083a6d9ab81c","OpaqueRef:92e5a45a-edd9-635c-8929-b4956320c847","OpaqueRef:dbc87b09-5539-c8fd-9c4e-0659a7217325","OpaqueRef:cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f","OpaqueRef:866c4d54-adbc-cd19-1540-183e7ad9bdd4","OpaqueRef:43bed9f5-4bb8-551b-8540-922b40e0dd42","OpaqueRef:d1ff49a6-6866-db73-c3ed-6faeb5460a6f","OpaqueRef:4c98e491-6bb2-7ce7-460a-3a9471bbd598","OpaqueRef:9ee4625a-e02c-100a-c621-43852bfa3d29","OpaqueRef:d443b5d9-94b5-50ce-a635-1ca03b81bcb7","OpaqueRef:ac16b434-b718-b77f-e797-4c8032c9a21b","OpaqueRef:de8bf714-f486-251e-f6f5-e566b8de1a9e","OpaqueRef:b58c1211-94fb-cc3f-668f-9c64343d5ef6","OpaqueRef:d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0","OpaqueRef:da44ea34-34ce-eee1-0fe5-e2fbd374087c","OpaqueRef:c0eeaefd-fce4-4122-bf5f-6548c7627ecd","OpaqueRef:4eb6785b-2126-b2f8-2c55-f5a0b59694e9","OpaqueRef:f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473","OpaqueRef:7862cac7-5a00-3e1c-fa98-1ccad464efde","OpaqueRef:7afd9229-b870-bc5f-9dd0-c8e3aae1edd8","OpaqueRef:dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9","OpaqueRef:e558eee8-cc61-ab94-2838-d11ecb19b9de","OpaqueRef:cca9c4ef-8dc4-3928-6973-1001fefddcc1","OpaqueRef:1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb","OpaqueRef:78595ea9-9a7b-2bb2-b7ac-888947bb5f71","OpaqueRef:05540a9b-fd89-62d4-15c2-569bb74a45c9","OpaqueRef:8624fdc6-5a79-3477-2f2b-a692d687856f","OpaqueRef:6c868e70-45f5-7510-e697-31565da1b645","OpaqueRef:50baf2ac-cd2d-8c58-6b49-7d922a38d506","OpaqueRef:b8d7db71-88c3-3973-0f76-afb5ea8758b2","OpaqueRef:b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa","OpaqueRef:c7b3adec-b936-8480-8162-4d0176e80494","OpaqueRef:1611b4a5-6d76-0608-be83-bb85cc0f4401","OpaqueRef:76add74c-9a76-ec09-e9ba-062f5fad673a","OpaqueRef:1eb1cfda-f398-99f9-2b7b-5a186bfb5769","OpaqueRef:48e48870-e314-22ff-23e7-9c81e0a09de8","OpaqueRef:6b99cb7e-9854-bbfe-13c4-23c85b58cd27","OpaqueRef:3b17375c-d99f-b75d-771a-d6bd526bc732","OpaqueRef:330de495-5f10-90ae-9985-a622287978cd","OpaqueRef:6950f134-0be9-1cf8-a418-b84f72b5c550","OpaqueRef:2da47eda-326e-bc79-2991-4178a7f91aa2","OpaqueRef:07e67067-0db3-473e-f720-1b13cb7165cb","OpaqueRef:59d3a529-afca-f562-204f-bc882519cfc6","OpaqueRef:6745eaf1-b724-7ba1-6adc-6714d87ed055","OpaqueRef:fb5f1cd9-639c-fe4e-736e-59f602bd6769","OpaqueRef:63f5ab90-88e3-b9c7-869a-ad1e4725f6c8","OpaqueRef:8b2811fe-bf52-d656-379d-c4dc786d2863","OpaqueRef:f075184a-6d67-aeee-23f9-4af9fb3fdc70","OpaqueRef:72acb54c-837e-f60b-5b73-54258ba6f8ce","OpaqueRef:fc02d213-9915-5d79-f9f9-77981d5e7e61","OpaqueRef:fe33f11b-7386-0023-20a5-5d66b81d1550","OpaqueRef:ea08f6e0-a317-ec4e-b863-b58cd69e6f55","OpaqueRef:07ba3c3a-6d81-f137-050b-460a090cd95e","OpaqueRef:c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e","OpaqueRef:b8e13938-03be-2a5d-fc3b-425b8f7966f9","OpaqueRef:d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8","OpaqueRef:6419de42-529d-e793-ac14-e1afc0f4d3d7","OpaqueRef:36ef005e-7879-0edf-e7d9-54b5b5f6e467","OpaqueRef:ff2c84a9-3ea0-6792-fe4d-3215c397f3b0","OpaqueRef:18d16a24-b68d-43cf-69d2-7a5868998306","OpaqueRef:6d180e8a-3fc3-4459-2526-189b389da794","OpaqueRef:2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4","OpaqueRef:4a2b195f-f477-f143-e4db-f96913abdf9a","OpaqueRef:4af3e675-5dd0-08c7-b67a-414e85223d40","OpaqueRef:cd17195a-9274-0b74-bc8e-3f0c916bfbce","OpaqueRef:864a54cb-981c-8bba-19eb-2c76ce406359","OpaqueRef:37fed550-72a4-a8c8-5468-8bc3bfd1554e","OpaqueRef:800592e3-30ac-bc00-4274-f9c23e335d57","OpaqueRef:699638de-d890-04ef-ea8e-5473742ceb88","OpaqueRef:5dc61f97-020c-3958-1531-9d950ebad058","OpaqueRef:0f104484-8054-bb43-0685-27030f6bebca","OpaqueRef:7122efb6-3045-2da0-b503-1524b692a5d8","OpaqueRef:79a22291-0fca-eeef-d23a-1b796b2123aa","OpaqueRef:fc844b8c-44f7-0a47-136b-9fdae98759df","OpaqueRef:539ace0a-c714-562d-f153-ce5df5f92265","OpaqueRef:a714bc2b-93c4-7785-d84c-53e40aaabc73","OpaqueRef:caed3120-c6e2-8d1f-4498-6aa7d966a575","OpaqueRef:aae2577c-a1a7-9646-9bc5-a9c082108eab","OpaqueRef:4bfb1275-7c46-d751-4ab4-f19c5e83bd41","OpaqueRef:1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f","OpaqueRef:96fbe84c-1cce-dab3-c396-bb28962a8aab","OpaqueRef:0b3c3543-7504-c5eb-4673-31e51971670a","OpaqueRef:94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e","OpaqueRef:8dfb37f5-203f-2ea4-597f-7c350f6233f1","OpaqueRef:3f9bb6d6-db4e-b115-a2c3-adf553886983","OpaqueRef:2770c2e9-7d35-17f7-5f34-9814d604a3c7","OpaqueRef:9760f691-5295-ecc8-bf2c-3865249c1f6b","OpaqueRef:a2a09fcd-1313-554c-9051-f4dd1c4474fe","OpaqueRef:4a16dd04-0fbb-e5bc-af88-01046c72c54b","OpaqueRef:9350ea5c-ca28-1ece-9c6f-1c4ab918d119","OpaqueRef:d529b00f-b546-b67d-c50e-f0d216b2ef56","OpaqueRef:1ea042ad-d922-f7cb-90ab-9ac09e011670","OpaqueRef:0d87eda4-f5b4-1c19-ff98-f1bc171afb8f","OpaqueRef:6d3feec4-ad36-040d-b555-8c49b8015bf2","OpaqueRef:4c964b58-b18d-599c-140c-3d7e6fee0949","OpaqueRef:fa09b51e-0da5-a900-4da2-33752ad8a112","OpaqueRef:bebace76-69a8-cb40-82aa-5ecd4b882075","OpaqueRef:f05760c3-46d9-9cf5-8831-330943a33ce2","OpaqueRef:9a9b62f1-2fae-cc0c-03ff-147b35e7917e","OpaqueRef:e39b5c55-fcf4-41de-74c9-a38e278e85db","OpaqueRef:ca111bd4-768b-a624-f752-4d4a51ab2471","OpaqueRef:66ce4f5c-82d0-457d-dced-433bb8b5229e","OpaqueRef:16474184-4484-6193-a7f4-2baa521a56e7","OpaqueRef:cf7a0ae8-7440-c6ac-ef72-5454aadc19a7","OpaqueRef:dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4","OpaqueRef:1c6ae07b-8cc7-3334-d143-40fba15e5d1b","OpaqueRef:26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1","OpaqueRef:38d676a9-1eca-992f-8768-65856d28ec39","OpaqueRef:76efe753-ae98-21ef-4ee0-c06be1ed6bf8","OpaqueRef:7ace0159-c007-b95d-d43e-90af54f7b4f3","OpaqueRef:0511b768-32ca-e60a-83d1-6089ee037abd","OpaqueRef:8b731fe2-d6fa-2b5a-738b-aa1501e2a00c","OpaqueRef:c2e03e88-ade6-a5ff-db5b-b92e0bc2e580","OpaqueRef:627b53af-258b-eaec-feec-9a1cfb5e915d","OpaqueRef:d6b2a0b1-1991-b740-0d48-242d5b3463b2","OpaqueRef:5502ee79-ceec-099c-740a-42e395dac81b","OpaqueRef:b498514f-0f98-ec60-df87-f1feed07141b","OpaqueRef:6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e","OpaqueRef:0cd88229-8eb6-dd98-09cc-8635498afcd2","OpaqueRef:58ac1559-04a8-f7ad-2224-53591cacfcb7","OpaqueRef:d7450039-1e27-7ac8-acc5-a698cb19a525","OpaqueRef:ae095db7-583e-cfc0-2cd3-db791d3b1671","OpaqueRef:8ddf8bd4-4146-aab7-5e60-37b3c59f060d","OpaqueRef:00f9116e-139e-c5c6-e647-308230cc9f5a","OpaqueRef:70787b4c-26d0-f9c5-9b31-1c9e291035c4","OpaqueRef:14ea86d7-eccf-8790-fe68-2cee27f915c0","OpaqueRef:7f355dde-ac8c-9a02-ce96-16a1a08c0836","OpaqueRef:1c6bfef7-d9c9-4b53-4184-c72d5896e910","OpaqueRef:8ae37793-9d90-d55d-bd48-328657eac262","OpaqueRef:4748a78b-fbc6-06d6-9a9b-0fee76a37e42","OpaqueRef:922f39f2-c948-d0cb-813a-8fb675fe1209","OpaqueRef:5e5aa3af-ee5b-3973-2b26-cf1882900d7c","OpaqueRef:ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b","OpaqueRef:ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3","OpaqueRef:d13394ed-05a5-8a53-ba59-20525ec873be","OpaqueRef:c71d068d-24c4-6d68-8439-3078c968141e","OpaqueRef:bceff7d6-7267-91cf-fef1-eaa65de886e2","OpaqueRef:b9a4873c-7e19-ebec-d524-f1d69da5324b","OpaqueRef:a433bf84-7725-f4e2-6f89-31054403dd87","OpaqueRef:e254be14-8fe4-916c-b287-25b8be1a6502","OpaqueRef:fae19164-aa28-38ee-e1e5-a3a3082729bf","OpaqueRef:86907190-69ac-4a19-df3b-6678644e64e8","OpaqueRef:1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f","OpaqueRef:b132a88b-b242-3cf8-0459-4bd858b7dc93","OpaqueRef:505fcb18-5888-5bf2-75be-6235aba2e6ee","OpaqueRef:d5b5a870-45ee-4124-ec9d-3f16ed2c7db7","OpaqueRef:ac809817-a5db-b4a2-0b14-3ba7c0ff2165","OpaqueRef:7958cefd-9fdc-f836-fedc-22f89fd06ce2","OpaqueRef:176db48f-09fe-625d-8d3f-0588f796751a","OpaqueRef:dff728c2-2d9f-e6ff-57ef-a0e31f0927b6","OpaqueRef:7c4df9d1-26c8-8986-35f7-a1ec7f4804d2","OpaqueRef:0a561bf4-9228-cb18-0ce3-7d2a0d302800","OpaqueRef:21d14229-6be0-a401-6580-4ff98d459f7c","OpaqueRef:f850300a-1604-59c2-5cab-0a1380798fbd","OpaqueRef:3c6c94b2-f160-ff62-be39-e917e080f3d2","OpaqueRef:26e20184-1c7f-5596-b456-22ff28f2562a","OpaqueRef:5f5d40d5-5171-dacc-b6ff-497744f2d6cf","OpaqueRef:92d0e454-d08f-fe30-f288-33ac5e9a7193","OpaqueRef:0b33ba31-b80b-e074-7262-65ad91ff9313","OpaqueRef:10d871c1-c065-b472-0fef-42311c39c9b9","OpaqueRef:a8bfecf9-7e65-f0b7-f087-a59845369df3","OpaqueRef:4bf590bd-2137-55dd-90cc-1735a84da788","OpaqueRef:1e34f646-0d83-991e-6d57-53abf105526b","OpaqueRef:ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33","OpaqueRef:57eb64a6-04db-6995-2a99-3eaf96be5263","OpaqueRef:915e4dab-9537-bfa4-fac9-85addfb3eeac","OpaqueRef:4f7a7bae-a4ae-9024-ffd2-3bfe706c266b","OpaqueRef:2ef836d2-b9dd-5a23-c794-2e7589f36be0","OpaqueRef:e0ca9324-e1ad-9179-5282-f7f36641bb1d","OpaqueRef:067511f8-54b7-de65-b4d9-dfb2089ac41a","OpaqueRef:1bb99abf-a34e-2a07-c87a-871871b84931","OpaqueRef:051d2068-cedb-9155-c92d-1233e9fbc3e5","OpaqueRef:1fcbc379-fbbb-f702-d1ba-7158bead56df","OpaqueRef:520813ad-5f48-b68b-da3a-36a944d0a2d5","OpaqueRef:1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d","OpaqueRef:383340ed-7b65-ec60-3687-cd5b9a22dd4d","OpaqueRef:c6cd9483-96d1-5a4e-8272-58d62903ba13","OpaqueRef:c935c5c6-6224-1650-60e8-8fe70daaa5c4","OpaqueRef:d9b34a9f-bd57-74ef-44ca-d5dc42e857bc","OpaqueRef:603d3545-44ef-8bee-7e48-7a9ec1fe0f4c","OpaqueRef:2ab258fa-f9f0-53ca-1a97-e319259e63d8","OpaqueRef:92828369-5a7f-e0cc-ff8a-20ce4e6a182d","OpaqueRef:cf2e8f13-038a-7d7b-5021-c881eadac803","OpaqueRef:ff8c2c53-80b5-03a6-88c0-ced5d925bc2f","OpaqueRef:027a3a06-ffc7-fc53-f107-b8ca78294326","OpaqueRef:76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d","OpaqueRef:bf7f941b-03a6-dfab-5f08-5f1d5e046a8d","OpaqueRef:91b38c06-f1f7-acd5-a6f4-5e10e9decb8e","OpaqueRef:a8accf3c-5e68-c1ad-347e-4b14086a0a3c","OpaqueRef:0298a263-16aa-fa51-84d9-bf231b03257c","OpaqueRef:b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8","OpaqueRef:92424d6e-6c8b-e6cf-52f8-c1ecb18ac162","OpaqueRef:b9b352a0-6f8e-854e-71b3-04d31b6483fd","OpaqueRef:e9d70821-4d5b-c6e8-0769-305ea28819df","OpaqueRef:70a45f35-52c8-981e-b5b4-756e9dd422bf","OpaqueRef:29f5163f-f0c4-062e-38a7-e652c0ed5987","OpaqueRef:fa0065df-12b1-d909-9f18-0ee0e5905322","OpaqueRef:0075f8e8-9cd8-3a4f-89e8-f53ff0121590","OpaqueRef:1cd93736-a017-b50b-a7ff-f84557f73b64","OpaqueRef:52e94cd3-f9ef-225b-9d23-133e521e39ec","OpaqueRef:43bd2f40-5b02-5f5f-f2de-3355ce64f08d","OpaqueRef:fa8c8b9e-82c2-1edd-0621-58b876ecb786","OpaqueRef:25efdd5a-5572-0245-6f76-edd4d8ba87f2","OpaqueRef:43f83df9-8b01-dd53-da07-19c763c45316","OpaqueRef:b73723e7-74ed-dae5-a160-a31e2f96f64c","OpaqueRef:3763d099-4a3b-3905-7603-8e5a98dadcc6","OpaqueRef:7a01d196-5bf3-d888-ca53-f7c308d79daa","OpaqueRef:5b8ed78a-2c12-c8e0-c706-c960dcac0e02","OpaqueRef:f5e84d5c-9173-a902-ca07-aaa980e78e7a","OpaqueRef:f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088","OpaqueRef:da79116d-658d-77fa-9595-51e744744bd9","OpaqueRef:7b46c171-b1db-a323-3b76-457ea95372d2","OpaqueRef:363f935d-b9b0-96d5-6286-c7c611a0a65a","OpaqueRef:58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f","OpaqueRef:2072d2a6-0563-826f-693b-1d3d46c4d4ed","OpaqueRef:ad8c841c-d7b0-29d0-bbfc-e102b0cf29db","OpaqueRef:ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c","OpaqueRef:fd67acf4-c454-2308-703d-b1c548829599","OpaqueRef:531b14e0-799d-158b-2741-b0722c44ef81","OpaqueRef:8deb8400-477c-d1ed-5e43-3a57cf19fc18","OpaqueRef:bb254b62-2ce5-d18a-ea89-b9951d43540e","OpaqueRef:dac42fca-3f2b-9f12-984c-094ee89b8a3b","OpaqueRef:bee385fd-db51-c95f-5dc9-e0cb27058fe4","OpaqueRef:898a10e9-4929-667d-1f69-6084d82f95f2","OpaqueRef:0093bc43-35e1-4d14-5ae8-0d48a7c7696d","OpaqueRef:8e640d08-58a8-3220-9ad7-2f6ce7ffcb54","OpaqueRef:f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3","OpaqueRef:4cf2b236-677b-9ed4-7466-d0e1337a0549","OpaqueRef:b3db5cf5-cf31-a92b-edbf-05fe326e9844","OpaqueRef:e3370dac-0910-8f7f-a68c-aa87ce861519","OpaqueRef:68d3594f-230f-4fb6-5177-fd760bca1be6","OpaqueRef:6ad64869-f5c6-00aa-b2b8-8281cfd24e88","OpaqueRef:ab7a8ddb-0a66-957e-b67c-2623919816b3","OpaqueRef:70178e57-b50b-900e-a105-0b50d5961ad2","OpaqueRef:84facb10-a76d-d587-f1b4-fd1bfffbbd13","OpaqueRef:f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f","OpaqueRef:5e271507-05bb-a4b4-2aa1-45a1d678a3c3","OpaqueRef:9b129852-5a6b-938a-6657-d7fb8c0fd1d8","OpaqueRef:1e749289-18cf-7c15-dfef-7c563ac409d8","OpaqueRef:182ecb35-daed-9ee8-efc7-cacab112b589","OpaqueRef:13cd1c58-7c1e-1ab4-65ed-9ff82b888688","OpaqueRef:8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0","OpaqueRef:a06fc2d3-81c9-76bd-b9b3-d00973854b22","OpaqueRef:29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2","OpaqueRef:941b5182-310c-b1c2-fbf4-1409241add9a","OpaqueRef:975df00f-053b-2fe4-70ce-41b80b2814f9","OpaqueRef:7d45ebaa-c032-5209-010f-bda83e9995c0","OpaqueRef:13657521-3100-32e7-3d38-a1c0df842c77","OpaqueRef:4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259","OpaqueRef:55377552-76fe-e589-d4cf-02f64f49f350","OpaqueRef:d36bf25c-cffc-3785-e9a4-1d6dd826cd03","OpaqueRef:53e3bde4-ef9a-5933-62c6-89a992f399b0","OpaqueRef:216b0366-cd42-24db-57b1-3c8fce70e4ba","OpaqueRef:5beceb5c-5880-09dd-3eba-d5133d463f9b","OpaqueRef:7bd495ef-abbe-3363-4f68-64a70eed83eb","OpaqueRef:61fbb0bd-b453-3369-98a3-53f4f8a7fe6c","OpaqueRef:00056679-3372-9b8e-6488-10d423edb0ad","OpaqueRef:64067282-0137-c32d-3ae4-7b20b6a93ad1","OpaqueRef:97015ed2-cf9c-9ff4-9d34-b1ae9a377788","OpaqueRef:c492097b-20fb-0584-6559-893d4d35c82d","OpaqueRef:de3c3005-8901-9213-2c61-45e6d489c801","OpaqueRef:0fd4e192-6082-738e-c2c5-27cf2cb5f467","OpaqueRef:3f4867e1-9401-bc2a-a260-5561bfe8d08c","OpaqueRef:3ad57875-8d33-5adf-7184-24f4df2b6981","OpaqueRef:5c07d45f-d9f5-207e-1e3e-70c0b5abc69b","OpaqueRef:73ba289d-8cab-51d5-a8f6-ae42be46b61c","OpaqueRef:88447749-f966-bae0-a649-ad12c1391cc2","OpaqueRef:9799e20d-f5ed-6371-1fd7-6ad3fb1df729","OpaqueRef:b06ba59a-e556-7f5c-902a-871a8004c149","OpaqueRef:6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2","OpaqueRef:522142a2-c5ce-4095-85b3-13bf2ca36175","OpaqueRef:2fa043de-5e00-c856-7ceb-0b0a266f0a4c","OpaqueRef:dc84c131-adf9-d460-4988-294d88b46924","OpaqueRef:f559123e-c887-6ab7-49cb-675b315d69d7","OpaqueRef:9de70f7b-12d1-6625-5970-894335e62431","OpaqueRef:7c2f2761-86e0-d176-8791-cccfe25d8700","OpaqueRef:e4fd9189-1c6e-8b2d-690b-8f7923b2477e","OpaqueRef:1069a4f0-17e8-cde0-bf04-ffa08d2878ea","OpaqueRef:3d8acc2e-3bf1-9245-35dd-493184d88770","OpaqueRef:c41cce49-6fcf-44c2-1c59-99d127686bff","OpaqueRef:03c65989-d970-28e1-2d72-8cf1ffb06a95","OpaqueRef:2a8ae027-e709-28ac-8de5-56adc284daa6","OpaqueRef:396ee7a7-5e5c-9399-d89a-427109e6ab21","OpaqueRef:cfbc0c25-0514-0a40-1c57-9e063667d33e","OpaqueRef:a6d34497-1418-7a05-f792-60f8cbd8f7c5","OpaqueRef:6fcc710b-6217-2c38-f2bf-2455728b2b0d","OpaqueRef:805b2422-565d-0957-0898-5d5a078ee501","OpaqueRef:3d022c5c-d53d-333c-706d-c175777da30c","OpaqueRef:09593fa1-1b87-1d23-8e61-bf79b93236fc","OpaqueRef:3cc87704-357e-0ea7-e918-dcae6f73fa8d","OpaqueRef:49bc2875-5acd-548c-8823-bd2c6c2322d2","OpaqueRef:ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae","OpaqueRef:57fb16f4-51fc-7798-1845-070ca26ba746","OpaqueRef:544ea348-b989-8d3e-6042-13999626c5e0","OpaqueRef:34c8cdd1-6c69-506d-2e10-1a051d5f7d60","OpaqueRef:db6de8b4-bfd5-c3a5-905f-94106bb5a2ab","OpaqueRef:c1207e93-3ffe-9166-4ff7-80b763788417","OpaqueRef:2804a382-939d-876d-c50a-dc18d199bfe8","OpaqueRef:4b182675-bbcd-8a69-3671-5803cb22b481","OpaqueRef:e01a098d-e8fc-81fa-764e-c07a342d219a","OpaqueRef:2036d54b-2179-ce69-a922-9b2d5cce6916","OpaqueRef:58e3edff-51a7-7143-020c-11e3821c18cf","OpaqueRef:283982da-ebce-2cc4-faeb-4bee137761bc","OpaqueRef:f17f15a8-882f-380a-1e75-7074e4e51e1e","OpaqueRef:d6271e34-14a8-85dd-28dd-f090b63ff588","OpaqueRef:499f5734-a8d4-4c55-83af-f0b1e2a9d67e","OpaqueRef:89e757f3-4619-1fe9-1b1b-3afdc986af84","OpaqueRef:62801603-a12a-b8ae-eb7a-0890725c7310","OpaqueRef:8673c2e3-429c-7599-35e6-e9a804892d2a","OpaqueRef:3ee06801-74e6-08cd-b237-7636668ced4f","OpaqueRef:af9bf6e8-720f-8eba-b583-5ee68d14de90","OpaqueRef:a212b9b8-aa8a-6243-180e-4270a46cec2f","OpaqueRef:a1492f6d-0469-f57f-074a-88453672a2de","OpaqueRef:e756d67d-3c2b-a489-3c3e-763748f886e4","OpaqueRef:39b6f8c8-bfbf-b629-5d92-6594e516730a","OpaqueRef:c18535f5-924a-5a11-7522-c8ba88f23eac","OpaqueRef:acf9e287-4110-4a5a-c753-7925bb43678f","OpaqueRef:d7435e71-c22c-3fdd-bbcf-33849cc039c3","OpaqueRef:3057ba41-6ab0-21bb-c4b9-2a53ded43c5a","OpaqueRef:e69c0e91-d962-f102-9200-5b00d7ff495a","OpaqueRef:784956f0-eb8f-e687-118f-5ee8fabc47dd","OpaqueRef:d0e2be89-4c37-3974-149e-c06d8358e0be","OpaqueRef:c317c9dd-000f-61e2-91f4-cafc36cc3f65","OpaqueRef:dc719910-a701-5800-fe16-18e3cb4fc00e","OpaqueRef:0dfef1da-7988-b6a2-0752-20b8dfcad6b5","OpaqueRef:a7f5635e-754b-2c47-0182-b2cd6eaa6a4c","OpaqueRef:21c41bf0-8c5e-b6de-5dc7-f71cb751a430","OpaqueRef:37548ef6-abc2-9f49-7fd5-efe65a5b5448","OpaqueRef:5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044","OpaqueRef:6682964a-92f7-ece2-30b1-583be0f69b15","OpaqueRef:eb0f1687-b443-2873-e3c5-3464197a2a50","OpaqueRef:ca439f57-3fa8-ee93-f2a5-5d4f72cbb907","OpaqueRef:28069750-7807-2fa6-9bc2-bae7456f5de9","OpaqueRef:450af311-5669-e4c7-6ca3-b3350172eafb","OpaqueRef:9fb5a1d6-e53b-24af-bb7c-49a942f0bc65","OpaqueRef:ad6b4de5-bb53-c27c-f34a-033542cbcf61","OpaqueRef:cf8f0a82-e845-5f00-68b3-d0905d31e8be","OpaqueRef:fc7cd54b-2fde-4fe7-4caa-e152930fed06","OpaqueRef:d619c5a5-074a-a015-1c1d-a0a0e62bfaa5","OpaqueRef:84d71586-5ce8-2364-c74b-0017c93b82b2","OpaqueRef:0e28a706-8960-58a7-4f9d-c3b0eea64a0a","OpaqueRef:e3637139-7f57-56b3-b8e8-4fd736f11588","OpaqueRef:164a66c7-e0b0-7fd7-ccd3-d13042353c78","OpaqueRef:88fc5a8b-e5f3-612f-7a32-e5a651abd04b","OpaqueRef:0ed8495c-b53e-7951-d041-14df9605e6f8","OpaqueRef:88f8cb5b-b92e-0ab4-307d-2ed4ea447475","OpaqueRef:e7d108ee-2082-98c2-acb6-5884f39f3056","OpaqueRef:62084664-4e15-5ca5-99eb-00007ed70717","OpaqueRef:f2df7036-f418-a415-ddca-d31ba6ff611e","OpaqueRef:4b368ad8-3eec-31b3-5fb0-d1070507cfd0","OpaqueRef:b7db64ab-97ce-4dfb-45d7-f505756fe4a8","OpaqueRef:25d4aaa3-582d-7e6e-eb43-8fba9c42568c","OpaqueRef:ff776240-dbd0-9ef8-f34f-42c85cf01b3a","OpaqueRef:559b520f-dcef-e6b3-6a21-3a74d84d3fa8","OpaqueRef:1a37ccfd-f500-bd50-bb25-f20411bfbb35","OpaqueRef:086121bb-2bba-06e9-bab2-6b7414b0e4eb","OpaqueRef:2fd85a90-74c9-15e6-d4f7-e59c7f584ac4","OpaqueRef:54cb0e64-7459-04bb-621b-4f16f42ba21f","OpaqueRef:9e2e9082-8361-adb3-1e6b-51178368e9a5","OpaqueRef:f1ab04b2-6571-fff1-66c0-720ca6c50bfe","OpaqueRef:616109ba-d73f-ad1f-a4ac-4a1454b7b742","OpaqueRef:8295c108-ca0f-bc2e-1d77-d580d9dcbdff","OpaqueRef:65e61767-fa64-53ff-0056-6491eaec7d1c","OpaqueRef:b2dc1fd3-b84c-d045-efe6-174954f53ad0","OpaqueRef:a534c226-3cce-06b6-3a28-cbf339c0e385","OpaqueRef:a576f048-226e-b605-b15d-f388fd903210","OpaqueRef:676b455a-f9eb-78e3-a1ef-a1ea437f6110","OpaqueRef:3d4411cf-b855-6140-b1cd-1c6b7a0ebedd","OpaqueRef:a0184446-8631-4833-3651-61ca4293ca60","OpaqueRef:b277f808-66e4-fd82-2300-bfae51e59679","OpaqueRef:babc2b36-7a11-3b3d-03da-fc3130f49a35","OpaqueRef:2a3d6942-c2df-0472-5241-52530708b8c7","OpaqueRef:7e23cac0-90ad-45ba-9a62-c7b6a6e4002c","OpaqueRef:b8f9b23f-65b1-75c0-289b-e6e2872ee81d","OpaqueRef:2adc8291-5288-6526-87a0-0b15ec4ca4fa","OpaqueRef:01844316-a78d-e6f9-a7b7-53a939235f5d","OpaqueRef:b1d61197-b0bf-cb30-2120-627c956a97f7","OpaqueRef:74ef5702-8a42-a7a6-8951-a28ae3b64197","OpaqueRef:ab2230c7-8d4b-357d-6a26-62f7c9b0bb27","OpaqueRef:ce3646e1-704b-6b7e-f468-45a009bec12d","OpaqueRef:c911cfca-5100-8446-b631-2d6f3861350c","OpaqueRef:f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4","OpaqueRef:883d4710-6475-244f-cce7-d17282265fdc","OpaqueRef:56a2f957-6b1b-7d8d-00f6-931d4574f63b","OpaqueRef:bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f","OpaqueRef:ba6f9682-ea22-caf0-ea6a-cfad6774390d","OpaqueRef:04ac5338-b19b-6833-ed3c-b992d6ef8328","OpaqueRef:917258fe-6427-e960-98e8-9f3bbd88bd22","OpaqueRef:2de23583-b3f1-6e39-4bd9-4c7bc7afc977","OpaqueRef:46c7e8d5-56f3-060f-2995-2d969d216c2b","OpaqueRef:06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5","OpaqueRef:c2bc934e-8ece-de2e-3288-7ccbab1e257d","OpaqueRef:e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a","OpaqueRef:3b5deb71-ec32-2485-4913-089fa04f1ace","OpaqueRef:c7b868fb-53dd-4ff6-9b83-fe096e910d82","OpaqueRef:3516a06e-5a67-7f1f-4c83-40b3d7e914f0","OpaqueRef:439dce99-b067-9c88-7a0a-06e581f8f502","OpaqueRef:8e7a8bd9-9ac6-a612-477a-12c33c6af2d3","OpaqueRef:2cc96f79-52aa-dafc-494e-5d04eb63b66e","OpaqueRef:2966c4db-3b8e-7257-734f-0969cf20819d","OpaqueRef:412f975b-5a60-92d0-a171-2bedf499c0f5","OpaqueRef:4e914b35-ddeb-12b2-31fd-e2fbcbec010d","OpaqueRef:588d746c-9967-8e54-df7e-a825bc64f73a","OpaqueRef:e9a7fba1-deec-3478-2098-26b97828c750","OpaqueRef:93dea749-bb50-7546-5ecb-90cfbf26165f","OpaqueRef:b37bf5ec-05a4-e2bb-1586-d973d208a2f8","OpaqueRef:0c82bef6-ba72-0bee-b924-84feb84b2e77","OpaqueRef:6753d0e3-8e17-9f9d-cb5f-9642c2b7685d","OpaqueRef:d70b794c-05dc-77a5-b720-51a905de3f2b","OpaqueRef:0462f07f-cd50-abd0-7965-0ec55f5a126b","OpaqueRef:a28dd0cb-fcd5-33bd-7657-278e5f653471","OpaqueRef:35767a4f-af9a-af62-5f51-ed250f684d25","OpaqueRef:2605b766-9cb9-cdb1-53e6-2431e711af44","OpaqueRef:f5b86d13-b503-2c7a-83cc-b54896afb752","OpaqueRef:266d1cf3-ea34-44ba-fc97-cf4cd876d7c8","OpaqueRef:2cdb0f4e-685a-814d-03e5-19c4fbe5aa64","OpaqueRef:a2f2b2b8-188f-f022-69bf-fa443d89bb58","OpaqueRef:a4c9dc80-0070-0067-a1d3-339b5081adc0","OpaqueRef:f6184e4a-0be4-97e7-6db6-bced99fcceff","OpaqueRef:771f7157-33cd-a8e1-f5a7-ae23af63c750","OpaqueRef:7f545d78-e772-030f-2e95-7d3b998d3000","OpaqueRef:b99da77a-522d-4bff-9013-ae981fceda83","OpaqueRef:0a01091f-7913-54d3-94b5-3ef26f90b0f9","OpaqueRef:dfc8a1f1-60c9-373b-c6a3-56c0712754a7","OpaqueRef:e3e174f6-5c33-6385-bd9b-09213a73e701","OpaqueRef:f1fc3e4c-3f63-876c-f667-2c06a3321e7c","OpaqueRef:3230d646-65ff-59d1-0400-5f58231c0664","OpaqueRef:68130225-5eb6-b36c-43f5-c81acaba8b68","OpaqueRef:9ad29a74-1eec-8937-697a-ba3679e4f48d","OpaqueRef:3fa0a161-a6ab-4adc-3749-2aab29e2b445","OpaqueRef:1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e","OpaqueRef:924d34e6-51df-0ef3-fdd7-065a11af80c4","OpaqueRef:ccc6e989-a50d-3530-743f-d13e7f05e5dd","OpaqueRef:bbdc09c5-8729-4aae-9945-66b292cf2aa1","OpaqueRef:62c6badc-ea63-3832-3641-cd0eccca0304","OpaqueRef:18c1913b-2356-df02-11ce-ffd2da0e4170","OpaqueRef:e522fa0c-7c50-cc59-c88d-0dedc9aac2aa","OpaqueRef:3acba506-ce1a-b39b-b637-3731b50880e9","OpaqueRef:4894cd8b-7d71-407e-2852-1b7f4aa166cf","OpaqueRef:311d925a-6070-271d-a724-0948552a654f","OpaqueRef:44d764dd-95db-e4d9-4cf7-1250f3ca601d","OpaqueRef:937b2b79-813a-a286-cbeb-da09e3cf4c90","OpaqueRef:44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a","OpaqueRef:92967fef-88ab-15e4-f16c-9f042b3191f4","OpaqueRef:a3f5b9a0-e36f-41d8-65dc-8f7bd095293b","OpaqueRef:9986f58f-773c-c701-6b97-7e99b0135124","OpaqueRef:d450902b-de9f-7867-c98c-f912e6a80cce","OpaqueRef:7936813a-24d4-e749-f89a-dec7286a0b99","OpaqueRef:81239256-3acb-c6e7-b689-9eb4e54c9956","OpaqueRef:745095db-fdd8-7025-f9b3-839b0fa846f9","OpaqueRef:7187f8da-4c69-cc67-9718-1f98b825c1ea","OpaqueRef:601664bc-64ea-312f-6bc1-543ca1a0177c","OpaqueRef:729d8740-7096-6a5c-49dc-6c4cec96500f","OpaqueRef:d4ab22c9-f134-2607-284a-56381333719b","OpaqueRef:2a06d13d-ff22-2dc7-98a6-a97c7c723481","OpaqueRef:a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44","OpaqueRef:a14d9994-ac84-07cd-e0c3-621d7c92f0aa","OpaqueRef:56bc2594-ff11-2fa7-8f46-18178bd1010e","OpaqueRef:396bfd0b-b63b-449b-75e0-f4998ed9ea1f","OpaqueRef:7a90825c-43d6-122c-0805-408ff98a5064","OpaqueRef:af48eae9-9c88-9a3d-e57a-46250c33abf8","OpaqueRef:174af546-476b-1579-44ef-07346dbbe4b1","OpaqueRef:2aa40daa-f640-4198-a8b2-20fdfd44947f","OpaqueRef:7555a731-bf5e-2494-cf68-90a0d7594b06","OpaqueRef:c3ae01b1-a370-4ec3-d91e-4d8533a89f86","OpaqueRef:37f9a250-fd67-56db-e2c1-7f7c7abfd9fb","OpaqueRef:a5ac4a15-20df-40aa-1d01-c668e8746d7b","OpaqueRef:93340db9-eacc-0e12-9151-854745d49cf7","OpaqueRef:9dd43118-a078-1317-8a87-83ebed088133","OpaqueRef:63b9ae45-0e59-c1e6-d3dd-f596860071a2","OpaqueRef:67af93c7-dfb9-98ce-ccbf-80fb7e828e27","OpaqueRef:23af0178-71be-1c09-5f09-4eeb59279dec","OpaqueRef:738acc9f-a221-a9c7-c008-4f324a609677","OpaqueRef:6467bf45-4441-2fb7-299d-da6dc598310b","OpaqueRef:5cd9ce80-b26e-54b1-0dfb-07431f9fde11","OpaqueRef:c614ec0d-cd31-33ba-21b3-43a6c498d0fc","OpaqueRef:34e576e5-27b1-46b3-bf30-25a663835fec","OpaqueRef:0620c7fe-5acd-626f-cd9d-79997b854a2d","OpaqueRef:f6607652-9394-52ba-ced3-f360b1257e6f","OpaqueRef:5d76223e-2db4-b433-f8c2-cb2a5d864efa","OpaqueRef:27378730-81dd-d327-639d-17495c264bc0","OpaqueRef:f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103","OpaqueRef:4d21470f-106f-4e87-5109-1054f40a15e1","OpaqueRef:8cbe8380-7d8b-e296-35f5-7941ad540728","OpaqueRef:26a2c50f-a17d-dea1-7046-e09d4e4beb2d","OpaqueRef:95d99f45-12d3-b0d4-5b95-3cf4e910c7c1","OpaqueRef:a954a18e-5251-f3c7-1bcc-0a7e3e532d13","OpaqueRef:b2bf107a-c001-a3f5-0f11-d9b414b636e9","OpaqueRef:d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d","OpaqueRef:cfaaa17f-391d-2412-ccd2-afab25ccab6d","OpaqueRef:bd37900a-e6b0-90df-dabf-871311560070","OpaqueRef:d237f558-5bcd-610e-0028-4fe71d0ac595","OpaqueRef:703ca7dc-8dcc-6df0-2473-7337caa1c17b","OpaqueRef:bac565df-939b-c536-dfc4-35ea64950ad1","OpaqueRef:d19eb620-7260-c930-6729-682529ab1d12","OpaqueRef:1ee62327-b580-693a-9635-78d27050c1b6","OpaqueRef:657ed104-a6cf-c0f5-1813-48f0bb17da4e","OpaqueRef:01a743e5-a3b5-f318-7228-4ce8fbcc6662","OpaqueRef:019dc5fb-c3ad-90db-7e97-160d3fcf1970","OpaqueRef:70276941-c1fc-66ff-97b9-6a2f0e4417c2","OpaqueRef:36d74e5e-a510-68e7-45b1-ad0a7c5f47c1","OpaqueRef:6d0a3227-0550-f146-7aac-34259c56d99e","OpaqueRef:86989975-8b09-5f82-f068-64f59f226978","OpaqueRef:dfa26a90-9ce7-1147-7ddb-d79dd9d9c105","OpaqueRef:e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd","OpaqueRef:96a4dd40-ee88-1987-3286-55c08bf66316","OpaqueRef:de4a5cb5-c8d9-3319-92bb-a0a0f560067e","OpaqueRef:9c0443d4-538d-c2ef-af03-55f9e033f6b1","OpaqueRef:0e630687-91e7-fb14-32b8-d7813d4dd5ac","OpaqueRef:024ec9db-e7f1-de4f-23be-6c3e46f8a797","OpaqueRef:dd56ce4e-8a5f-0776-a0ba-682b1dda3b84","OpaqueRef:795faa64-e21d-c19b-a175-7c28d7af1935","OpaqueRef:eba43944-c9fd-a3ca-d20c-d39c09923eeb","OpaqueRef:ea191445-996a-32e0-33dc-2819c43657a2","OpaqueRef:5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a","OpaqueRef:eb7f2515-ab28-d9d3-17eb-285a28545189","OpaqueRef:621bc530-1dd3-dea9-a82e-498f86b5664a","OpaqueRef:2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b","OpaqueRef:206c900b-40cd-e97c-ef4d-1f20a3d67e1e","OpaqueRef:9366d110-4c7a-e528-014c-8cfd1bc735bc","OpaqueRef:2d30096c-51e6-487a-b95f-5d3b49e0922d","OpaqueRef:29ccccc0-78ea-f639-1829-f5579b6cc3fb","OpaqueRef:6979048a-de08-4e61-feb6-b5ad950b3b88","OpaqueRef:17c2c3d4-6525-49ca-28c3-efc752410e1c","OpaqueRef:8a499ea6-d0bc-3218-e271-c5507d8f8a96","OpaqueRef:1ec637f9-4157-5b26-dabb-31f3331c2959","OpaqueRef:b57b8c50-f2af-943e-a514-8340681aaaeb","OpaqueRef:c99755dd-030f-7f04-48b2-eadf25ecd92d","OpaqueRef:dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f","OpaqueRef:8fb7479c-f838-e29b-4693-651f31819f9f","OpaqueRef:5a960d88-c30e-3aaf-f79c-e58803f4e544","OpaqueRef:3561ecde-dba0-fb56-62b0-1a6101833aca","OpaqueRef:dc25c20a-f553-ff0d-b49c-ddb96d8e2e61","OpaqueRef:795b843c-c4cd-3690-a224-e36e687ef07c","OpaqueRef:43572bd0-288c-6290-e52d-9f12253f662e","OpaqueRef:e73ccdb9-0003-bcaa-8576-fd587f6abd36","OpaqueRef:4a4afbc3-0b2c-f5f2-6967-6afb51cf903e","OpaqueRef:f52942a8-5ac5-2c56-c42a-79d9c3ec2c82","OpaqueRef:6113a2d6-4c9c-48a9-dc31-1c7b590e3cde","OpaqueRef:3fdd414e-97c6-a7a2-c297-871f5f05ee3d","OpaqueRef:a00e1125-aa6c-2a9d-2cef-3000e5357ced","OpaqueRef:973b22d8-c0b0-834c-ff70-30cdd424d1d8","OpaqueRef:207a7572-567a-8900-16f4-41f9c102bdeb","OpaqueRef:50dc8d5b-e46e-8903-e94d-bffbbf1bccc1","OpaqueRef:3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d","OpaqueRef:1388c828-c07f-9391-a1fb-9cd0653117fa","OpaqueRef:49010e45-7adc-7912-16a1-45bbcd359177","OpaqueRef:7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c","OpaqueRef:43c79c0a-2a5c-0e0a-b10b-5c0847fd888c","OpaqueRef:bf225b3b-1e37-86dd-5922-a04df826dba6","OpaqueRef:8274ff2e-c513-43d6-2a55-ce0057861430","OpaqueRef:0bdee192-3fa7-09af-d3ee-12cd06ebb91b","OpaqueRef:4b3fbad1-a1b2-ccc9-813c-9d6151a9d974","OpaqueRef:d6219686-f85d-245e-c292-f2dab9cf156f","OpaqueRef:cbb0830e-78d6-6db4-b10e-cd1acbffcfd8","OpaqueRef:137475bc-66cc-23b5-4a93-1101da98b268","OpaqueRef:435947cd-5662-5e05-3da1-cb3cb6937448","OpaqueRef:1411712a-41d3-d353-5e92-b977076e1b05","OpaqueRef:2c6424c8-06c4-34fa-1ef3-6f04e5805e1c","OpaqueRef:7588002d-2ebc-c944-8f10-c5c452efb97a","OpaqueRef:36bca930-2c10-ece7-d692-5fd29aca70a6","OpaqueRef:899a5718-836e-bb6f-7f8d-2ada2bbc96dc","OpaqueRef:dd24c4b3-62ab-3d64-f1c9-3c36df94d604","OpaqueRef:26051e27-35b3-e931-521f-cb8806ecf4b6","OpaqueRef:30f950cd-ded7-0c2c-e58c-d782eda3d752","OpaqueRef:ed901fb0-1968-23c6-ec49-bdbda2035014","OpaqueRef:b15fecc5-3baa-5969-d2f3-b883ec5f1bde","OpaqueRef:e83a8360-7f59-c3b8-6799-39fa6509772a","OpaqueRef:47707758-d7e2-88d8-20bd-6f063c40bd18","OpaqueRef:b18bd364-663f-1421-4321-d11d27c5b2c5","OpaqueRef:48ac5191-399a-1660-42c9-754b302eeb84","OpaqueRef:421958db-0318-8810-3244-01f0f855895a","OpaqueRef:154e0584-ee8b-74ae-4e57-b02afd66ba13","OpaqueRef:1a4cfda0-0d18-b966-86c4-b80e7a832211","OpaqueRef:faf17e53-86af-aa3b-93e7-46a7f130d178","OpaqueRef:53a516b7-ac7f-519f-b9e4-b9f79a6a1f58","OpaqueRef:c6e718ea-7554-1841-ffe9-48304dc85276","OpaqueRef:e6e276f5-85c3-01a4-43f6-c7699f4cf723","OpaqueRef:5607864d-8f51-59c6-74a3-cbe8fdf91e19","OpaqueRef:67a5efa1-04cf-098a-f236-30b058cd2f59","OpaqueRef:a1fb1090-0bca-17c8-bbc5-ed82e230cdf0","OpaqueRef:54b50900-4c44-f1b6-edc4-4b9d80e2dc48","OpaqueRef:0002e248-e4da-6542-fb0f-85214c20b145","OpaqueRef:9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835","OpaqueRef:42c1215c-fcd0-e848-88a7-8e9ac7cb001d","OpaqueRef:28f7a03f-0ee3-383d-dcd2-ed2a466f62c0","OpaqueRef:a2c22e5a-4523-2a90-65ed-7501f6d08657","OpaqueRef:93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9","OpaqueRef:ec6018b6-36d9-6815-1de8-7d6fc7e9e136","OpaqueRef:37215355-cf4c-bacb-1e33-1f027fb8c81e","OpaqueRef:8a1a13f2-8137-b095-84f5-ae67e3c3ffff","OpaqueRef:ae118c9d-8c3f-46ad-733e-39af8a3fe63f","OpaqueRef:21882b95-87bc-8ee8-cc2e-653037903827","OpaqueRef:9e6aaac3-334a-9504-3583-2a2f1ecba5b3","OpaqueRef:b9415fe6-a3a1-5cb8-ca85-df89c1304e8d","OpaqueRef:9bcaf150-0b82-265c-2206-1b5f2d672608","OpaqueRef:bb55d298-b018-8a07-a849-bdea9692a88c","OpaqueRef:5e022752-8add-d1bf-4ac1-9c859fd9103e","OpaqueRef:c75bb9b3-7413-aa27-4188-ba2a88e56822","OpaqueRef:42163f5b-56b3-9e8e-ee1c-568efc8f5585","OpaqueRef:05cf5f8c-0219-db92-26a1-29047a37c972","OpaqueRef:4fc1bf13-e0be-d634-8559-8b19c590afba","OpaqueRef:618815a8-ec46-44b9-06f4-0d53ecfb1fbd","OpaqueRef:32b9bc96-01b8-dd88-a59d-3294434bcf10","OpaqueRef:a7d2f695-623b-686f-25e5-e470bd6373e1","OpaqueRef:4322c6ea-1807-3e88-4104-269a8510c62d","OpaqueRef:1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004","OpaqueRef:a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c","OpaqueRef:78f71ff6-7c64-3281-44b9-025cf751e185","OpaqueRef:44847e22-2d67-3744-0698-506f6a8243e9","OpaqueRef:7e5e9fde-3ee4-7cf1-4756-915f745b4914"],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7233b8e3-eacb-d7da-2c95-f2e581cdbf4e","$type":"role"},"OpaqueRef:0165f154-ba3e-034e-6b27-5d271af109ba":{"uuid":"0165f154-ba3e-034e-6b27-5d271af109ba","name_label":"pool-admin","name_description":"The Pool Administrator role has full access to all features and settings, including accessing Dom0 and managing subjects, roles and external authentication","subroles":["OpaqueRef:cb68795a-8d1c-f2bb-6869-4946fd2df840","OpaqueRef:1839c84a-cc70-8ca7-c500-f2d85b30aac4","OpaqueRef:eb5f0341-f8a6-e605-9433-d85031bb2770","OpaqueRef:da8ebe60-05d9-260e-84f8-b13dafaf518d","OpaqueRef:ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251","OpaqueRef:6523834f-9b0e-f8b9-2417-43e0fc980cd1","OpaqueRef:df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597","OpaqueRef:632bc7c1-60f2-a9ec-2db6-77992be390a1","OpaqueRef:73ef731b-d2b8-a643-f02a-276577b88b3f","OpaqueRef:e9008880-3714-e128-fcd5-d95cb8ee790b","OpaqueRef:efef35a8-cf3d-5f27-e7ad-a2f6f5202dac","OpaqueRef:52684caf-e375-6caf-3396-62bcd5134d0c","OpaqueRef:f39da662-3800-921b-a6d2-237aa094b51f","OpaqueRef:9fea0775-bfb0-bfd3-ea51-8d64335d23c5","OpaqueRef:9dd59816-dea5-9ea6-d863-53ddeae637c8","OpaqueRef:d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64","OpaqueRef:dec3af43-be23-aa4f-25e2-0e523ee2ddcd","OpaqueRef:bd0a7604-abf5-2651-611b-2e213fa8680a","OpaqueRef:3fc99c9a-e53d-443c-1c33-914f3058ae34","OpaqueRef:9eaf06ef-8f42-4832-7099-e5a63d32a87d","OpaqueRef:fd7dc035-3957-b7a1-f7e9-905f9f523ff4","OpaqueRef:e42fb7ad-a6e9-6bf7-03e9-5c74c1abe0ab","OpaqueRef:07fdab34-4358-9aab-d2d9-d837fdae2297","OpaqueRef:814f6857-4634-66f4-c2fb-9bd469e96cf1","OpaqueRef:690bd4e3-01f9-39df-4563-ee110eafa74c","OpaqueRef:cb82f07a-4829-4df9-1817-2e6979df85a1","OpaqueRef:a6d1d05d-8769-4937-bbbf-13105b2fd6d7","OpaqueRef:daa86366-a0f6-b130-2d3d-77fe1355d6a3","OpaqueRef:91a8843e-12a6-4b4a-2d43-12db6b326490","OpaqueRef:bb22da75-1be1-172d-d8fc-1a1d7c45e425","OpaqueRef:ff06fa4e-8ca8-799a-f189-9cce85f6de90","OpaqueRef:95a849f8-0df0-feb8-7f87-4db6bf42da08","OpaqueRef:59298bd9-fe55-677a-3fe1-fb38b57b4f1a","OpaqueRef:4a59f765-d074-33f9-eb78-c3049da1f13f","OpaqueRef:15dbefed-137f-5c07-a484-8f1ba24fb156","OpaqueRef:a3181fc3-eb26-baa4-ddf9-a6c9f2af5812","OpaqueRef:966296b4-fccd-e24b-96e7-d849e9aeb629","OpaqueRef:e8564257-d2d5-cfdb-03cc-93d65e6fbaa3","OpaqueRef:93195d34-c76a-648b-4746-638e6b0a1bef","OpaqueRef:1664fcf9-fe5c-59ba-8d04-a9e8207b32d5","OpaqueRef:cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51","OpaqueRef:bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c","OpaqueRef:868dae0b-7f24-6fde-fc5d-0efebefe3c16","OpaqueRef:7193632f-b165-b0df-6eec-2e71f08aa430","OpaqueRef:38d061c2-1df2-dbbb-c049-44bc0b68eb1b","OpaqueRef:606450c8-c382-ccf0-2505-0ac239ad4adf","OpaqueRef:945bb27d-4f1f-d1ff-0e32-baa566437bb4","OpaqueRef:2c8931b8-0efd-9380-aa53-ab086ba4a2cd","OpaqueRef:0f9390a9-fd1b-1f93-d557-738545a56943","OpaqueRef:defae495-80af-75ac-d7de-a87a7dfcde9d","OpaqueRef:2e0163e9-7ec0-4088-aea5-688b3188b974","OpaqueRef:b0104ee0-e56e-e24a-01c9-be7b31ebac3f","OpaqueRef:daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4","OpaqueRef:ee19a249-eb0f-2076-81a7-8fe7cbff99b8","OpaqueRef:c43079a6-7821-364b-4269-05745d93e29a","OpaqueRef:4a544977-600a-957b-28e2-3b578998c8f5","OpaqueRef:24182612-bdde-08d8-8548-7a8922b40d59","OpaqueRef:0c393fa2-41f9-c981-5581-eb3000f8316d","OpaqueRef:5fa8a325-b230-e422-624d-78faf5473eda","OpaqueRef:19a7836b-75be-43f1-9f23-856f2be12fc3","OpaqueRef:c4dfc733-e053-1074-1a54-5cbc33ddf686","OpaqueRef:7d443d66-a509-ddd4-daf9-8f5c4ba55b4c","OpaqueRef:6ad192de-f028-0771-7f5b-bd20a8fe4caf","OpaqueRef:1421d041-f186-04a8-be92-a1b91244eba4","OpaqueRef:a66cba35-0b84-5261-664f-39c0d9ed54c4","OpaqueRef:e2cf5c12-4316-3fde-fdee-1f962e52a24f","OpaqueRef:f181149a-5c39-d532-a32d-b4c0cbf30f76","OpaqueRef:31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f","OpaqueRef:532e25ef-d282-4334-8145-2e7b0573c7b6","OpaqueRef:87e03946-2afb-f82b-7c4c-648c5f68bcb0","OpaqueRef:a62dfce5-4367-62b4-2b47-f178439fa685","OpaqueRef:5ff08560-8064-5ddb-b549-9c57ceae4cd8","OpaqueRef:d0c0c85c-c3e0-5012-0a48-59d9c2d517c0","OpaqueRef:b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3","OpaqueRef:66fa6648-3999-7a19-20c9-a25827d96b8d","OpaqueRef:0b7902b4-8ad6-b117-efbb-c2c2f056e009","OpaqueRef:2bf43b36-87e9-a224-4f48-9378843e4650","OpaqueRef:060f7f2d-13cc-7c62-5475-aa3b7498d677","OpaqueRef:2269bda5-7534-f62c-3369-46c3b4e6f527","OpaqueRef:761f5f58-389c-d42b-185b-27d3649589e6","OpaqueRef:7a7b22ac-e5d5-cea0-a320-857896f593e4","OpaqueRef:f64ba22a-a70a-57da-34a6-adde7f50b686","OpaqueRef:b26b0c85-5d82-e7a0-fe8e-ee26ff9670b0","OpaqueRef:182167f3-6dc0-b2c6-0ddb-2264903634cc","OpaqueRef:96052543-180c-6280-5b15-f2cc3cc4b089","OpaqueRef:eaf5e80c-79cc-aed7-f41c-23ea41568a39","OpaqueRef:acbd6ba4-b816-8e9c-9298-cae8b10234eb","OpaqueRef:0a581d00-0a14-6c1a-eb08-aee55c2a02fc","OpaqueRef:e61fbfbb-27a5-9b4d-c763-e9222b04d2fa","OpaqueRef:7f2c447a-558b-085b-53f4-15e9bde0bbec","OpaqueRef:acb54550-5aba-4e19-612e-12fa420b5687","OpaqueRef:f2eb9161-758d-0fb1-d254-0d20c628c865","OpaqueRef:35b648f4-a14e-5d25-fb59-57c74efda911","OpaqueRef:d40676d9-ddd6-21bc-cde1-e61e9e340cbf","OpaqueRef:433e5373-291c-2ea1-5b7e-81157e537309","OpaqueRef:074922ac-6eb0-c3b9-795b-62ef8efa69b7","OpaqueRef:cf2ec962-5270-cf53-d7ee-c29b07d2eb67","OpaqueRef:694efbc2-ae2c-5110-66c3-6a790f9f4179","OpaqueRef:5b0b6fc6-b286-89fe-4915-9f8fd82ebe41","OpaqueRef:e9de48a1-e723-e998-5aa2-856511ddd799","OpaqueRef:51f79664-2471-8018-6975-c75f214995f8","OpaqueRef:da9e6d7f-1d0a-50ef-1a87-8ace46f5be45","OpaqueRef:39ffaa22-27dd-5241-7880-ea677905cf86","OpaqueRef:552e253c-3b23-b27a-08b9-8342ba2c7aa9","OpaqueRef:6c815ba2-1dc8-c9da-9e17-61367f52328e","OpaqueRef:d2446ff6-79b3-58d0-1428-0dbe75485624","OpaqueRef:c35132f9-9d6b-4d83-8814-386c304c5b02","OpaqueRef:8eb4a4e6-e48a-310f-6850-cdf1fe544858","OpaqueRef:6692b21c-f620-f0e5-dbf2-dee1294645f2","OpaqueRef:090b0fa9-c127-16e5-4c17-4d08b4126ac3","OpaqueRef:03e94bb0-c911-2f70-33f8-b41aae2c6c18","OpaqueRef:b63d6fef-2e86-46e2-432e-3810c30a3fa0","OpaqueRef:fd737c61-91a8-e31f-49c9-ac46ef649b95","OpaqueRef:120c9250-46ec-3a62-fa14-99923beac495","OpaqueRef:398b78fb-3fe4-77aa-0c1a-9813c4f82308","OpaqueRef:76f60054-8565-3e4e-8f56-8a0d10e7b319","OpaqueRef:2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba","OpaqueRef:d1068e76-7374-9cf8-7189-03e003acf7c8","OpaqueRef:c9d198f0-f2bc-2be1-3d96-298db54fc798","OpaqueRef:2abfa053-fde1-2b41-3f57-42d9bf4fa586","OpaqueRef:d7ea15b2-0664-1cd5-dc30-7c49a546ae80","OpaqueRef:e2203194-7c7f-1b58-83b8-965b7c88898c","OpaqueRef:fe22cf0c-dbf4-50c2-8eab-9f9ab233142f","OpaqueRef:7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a","OpaqueRef:07de6fc1-c0cd-9b21-36c3-5baccf8d66ce","OpaqueRef:91d91080-a0b6-52e1-6c47-f19344682005","OpaqueRef:e35d6b89-5c97-f156-31c9-e518d3388659","OpaqueRef:f24972c9-f349-ef08-fa5a-54fb2b6eaa11","OpaqueRef:21eba7f5-f073-2d8e-2a41-183d3974d2a3","OpaqueRef:762062a0-4d4e-0481-4f91-9974b0f63974","OpaqueRef:6cc44d23-5081-fdf7-ee05-374043579763","OpaqueRef:a274ea64-2a4d-acec-b96f-32e36893fa83","OpaqueRef:f5e9d166-f43e-55e6-a50a-b9d788d13a0e","OpaqueRef:df1020a5-3e1d-672f-eb02-f85ff1604765","OpaqueRef:530fe816-39e5-b429-2034-eed4c4463bea","OpaqueRef:6560fc11-49fa-5009-b9d6-0ec78e323867","OpaqueRef:ce8c8758-07cd-04b4-8086-945682e2b949","OpaqueRef:24ad1c99-0b78-84fd-fb2c-d0ed821b8c55","OpaqueRef:bb97a595-e5af-1b54-9397-9252a92e5d35","OpaqueRef:1bf80bec-4d61-7551-907b-63dfdb72c416","OpaqueRef:bc0653a4-e028-efba-fae8-e5b17731c375","OpaqueRef:f2a2ba01-3dbe-1e3f-6786-b552b51e0b24","OpaqueRef:539f0c4e-7084-9181-9fe7-4ed8e2c32095","OpaqueRef:6ee3304b-df34-a1cd-3e11-530d22b55642","OpaqueRef:c374b534-db7c-2c7e-f405-b061d3adc23d","OpaqueRef:006a72c8-531f-e719-3fdc-69f8b5c5f8df","OpaqueRef:4d842444-22ca-0ae0-365f-96b9de2639a1","OpaqueRef:4b46d426-0071-da23-974a-d20ba16379eb","OpaqueRef:52e4bbbe-6428-b508-903a-c5c9ca432c0c","OpaqueRef:5e647d58-979a-4dbb-75d8-aac3ecfc2767","OpaqueRef:6db0dea8-3637-8c86-512b-21c722658b20","OpaqueRef:e6500c28-5f5e-df5f-3e8b-3220b86236d4","OpaqueRef:d39058bd-c379-93cb-56a0-eeac301a98ef","OpaqueRef:5c5ec919-8ff0-3e43-9530-f6af022b6df3","OpaqueRef:e7ca4ff3-0af1-cae7-bd98-fe42a5187a9e","OpaqueRef:c9c07dda-6524-1318-219c-f859f01363d9","OpaqueRef:161d6a70-b3d4-3d26-06ee-89b75808cf1f","OpaqueRef:05fdbf08-04dd-1ee7-85e9-023d2367ae08","OpaqueRef:4f978bf0-3f53-b458-6dba-892cb9640634","OpaqueRef:ba064948-133c-a781-a76e-bdcb7ba95ad2","OpaqueRef:677e08b1-a821-6148-1e38-2f6a3b8a2098","OpaqueRef:6d347916-6b16-6ede-7fa7-2105b9bea116","OpaqueRef:d99ab5bc-8b15-20b8-b6c1-cd1e87328217","OpaqueRef:bd902185-7c85-4773-07db-e26912ed083e","OpaqueRef:ee6c04af-8673-7e25-f5ef-54d21b838e6b","OpaqueRef:a170dda3-234e-3dc0-814c-99fb7d094eab","OpaqueRef:ece28d18-1857-ab11-3fcb-5df868262d10","OpaqueRef:aa78afeb-3181-fb7a-52b0-e174b682b0d0","OpaqueRef:16914305-3953-30e5-f0c0-4a45b161b668","OpaqueRef:2b5a7aab-29a5-b3cf-2d91-944fb2d22e66","OpaqueRef:aaa35cdd-a8ab-ffa2-e7c3-327df4d313f2","OpaqueRef:f03fbd01-ef08-2ac6-7db7-85c32289f29f","OpaqueRef:d4664f0e-dd3a-381d-a0c0-0af168d6f811","OpaqueRef:d7ddd962-28c6-9807-c03d-43694243cd3f","OpaqueRef:c000005f-5f22-5600-2e12-85495d6e02d7","OpaqueRef:270cfff5-ac24-5f45-7018-67ba1079bb8e","OpaqueRef:bfe28d20-c21e-16b4-15eb-2a1a44fb7615","OpaqueRef:cf7a77ea-5bd9-ad1d-19f4-b58701eb3be6","OpaqueRef:29d1f9bf-6aa6-119b-d42c-66bbfc290f05","OpaqueRef:19b96aba-3c88-8763-2dd1-c3f90daccc9b","OpaqueRef:aa46e99e-47a3-f937-5d49-789cffc42ced","OpaqueRef:9801533b-f160-629a-a994-e742e7971455","OpaqueRef:7033b792-890a-4ca5-0314-d6e8866d98ff","OpaqueRef:828b9849-82f7-fc81-82eb-0b94c7490117","OpaqueRef:8303392e-0602-1627-f095-7d213fecc091","OpaqueRef:1ca264d3-a51a-6f66-6c80-ab7c9045c43e","OpaqueRef:14e2b30b-3914-3eec-97a7-449af2a01521","OpaqueRef:159067df-8a25-53b0-d4a7-8a2041e88257","OpaqueRef:e78ab05f-eed2-a737-ae9e-45cf74eaf3e6","OpaqueRef:8ebb3800-5b1c-0ca3-c9e8-36eb1f655069","OpaqueRef:b44f8c55-f4a4-cec7-5c37-abc8baec46e9","OpaqueRef:5ed4c75a-a705-cbe3-c93f-6f5b652c1293","OpaqueRef:df654d18-e941-25db-18d8-b735dba1a499","OpaqueRef:5106e4a1-60d7-d4ab-7fd0-acfc2f0060c7","OpaqueRef:421adf0b-10bc-728e-e777-10fb174d6a53","OpaqueRef:525b5132-be91-74e5-c9e1-d42ea0ede4b2","OpaqueRef:cbd24236-a99e-a9eb-ea57-76544dd559b9","OpaqueRef:57a4035c-2176-1a2e-cca7-605ddbef54d6","OpaqueRef:bf00c330-4ef3-1109-c17e-cf69d8996cf8","OpaqueRef:ed7c36c7-be82-afed-7751-644215155619","OpaqueRef:e58e85dd-0873-8df8-bf0e-a78ad73a0d83","OpaqueRef:7c284010-cae5-10b6-b321-ec149287a8c6","OpaqueRef:cd2c87ac-2763-dd45-0e22-b563622e5c9b","OpaqueRef:7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7","OpaqueRef:f78d82f7-c143-7172-096e-ad50798f475c","OpaqueRef:e4aac618-ccf9-4592-c23d-f829bbcf563b","OpaqueRef:08cfa7e7-f341-4a78-6035-87d5741d02e8","OpaqueRef:5103be90-76c6-cffd-3512-d622d93a74a2","OpaqueRef:6b28edf5-7612-be94-cccb-b7f2993b9104","OpaqueRef:d6645112-98c5-829e-d842-8d0241d909d8","OpaqueRef:a31fb120-d59f-d003-f445-557c6d40f0b5","OpaqueRef:54014da8-4ef9-638c-1089-074874d47231","OpaqueRef:f094e5cd-c351-cdcd-01a2-a9c9ee14941e","OpaqueRef:0e32a766-a0a5-00a3-0058-0bce4987d801","OpaqueRef:d632d605-4171-f42a-7898-62245cc28f04","OpaqueRef:bf994089-76bf-cf4b-1400-34152d3fc603","OpaqueRef:0c6c285b-58e3-348b-67e9-2cf1aee0f8fa","OpaqueRef:7b8834dc-6594-da5a-9bdb-22c2e2d146a0","OpaqueRef:d4385002-b920-5412-4c57-b010f451fa81","OpaqueRef:0176088f-47bb-ab62-5325-5d22acc71268","OpaqueRef:4b0e8acb-dfc4-78b8-4fe2-b670d7d97890","OpaqueRef:77f0dc45-f46e-2242-14a9-22aa38353039","OpaqueRef:3c2b3e8d-ec65-9479-3074-7fb06b75928a","OpaqueRef:864a2586-45a3-a18e-fc4b-970429066482","OpaqueRef:4bac4c85-f235-32a1-b4e6-c4237652134a","OpaqueRef:4b7ea29b-eec1-c56a-304a-b68c88799fed","OpaqueRef:1165f711-b47e-76ec-dbac-4c225b4b9ddf","OpaqueRef:1b53cad1-0fb1-6b52-0875-c7f999a1a02f","OpaqueRef:009895d6-2a35-f2b9-5dbb-fca46c208424","OpaqueRef:d533db5f-b3c7-5053-942c-1ec28b1f25b0","OpaqueRef:3f3ec99f-91cf-3ae6-8a10-78901c4b25ec","OpaqueRef:1a1d982c-8dfb-5dc2-c535-265eaf8adb3e","OpaqueRef:86098675-bebe-e1d7-c063-988b04499e45","OpaqueRef:b798b24d-1067-d2ea-7fc9-f147d916ba47","OpaqueRef:b4992000-119b-662e-22d3-ff2ba2a55c0b","OpaqueRef:2694b9ba-caae-160a-1fee-c4401f7eb871","OpaqueRef:20192ebc-be70-d33d-c163-1770a526a958","OpaqueRef:76df53df-4e08-fd20-80be-8382f055f47a","OpaqueRef:c58e0892-cfab-2364-6b9a-fccf603a29e6","OpaqueRef:09f1a83f-01ae-ed9c-c781-98517d1dd3d2","OpaqueRef:d1e16e8d-92e0-ccc1-c85c-c2244e99ae74","OpaqueRef:27e9e225-a5b7-ca6e-75d3-5b4cb52d3627","OpaqueRef:9a38b22c-0f0e-1bb3-323f-04b4445a3700","OpaqueRef:b6a98068-1e06-e7fe-1010-269343afa0b2","OpaqueRef:f0155615-65ba-9161-c3bb-cac286bae2b1","OpaqueRef:d3c5c812-c278-9827-8e2a-24bbdab201a7","OpaqueRef:531f332b-49aa-b429-6f50-4d803205f792","OpaqueRef:fcf7dbbf-286d-73ec-e9e6-6c329a627d01","OpaqueRef:b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e","OpaqueRef:04e56171-2991-e1d5-f908-d6aa4ea70bfd","OpaqueRef:e57f5462-775a-c7cb-0098-6f5d512abece","OpaqueRef:f35f5fa2-d886-5a8f-a5e4-1e41237e20d9","OpaqueRef:d2071cda-fa54-9231-7db2-fddb3112eae7","OpaqueRef:0423894e-139f-10e1-855f-4a550175b615","OpaqueRef:f089614b-16db-9e28-06f9-0e0ca7be5320","OpaqueRef:941a6983-a5e2-3772-ed58-1e2aa29b1436","OpaqueRef:47999374-b082-b73d-09d1-37bb2836d522","OpaqueRef:5937be6e-540c-da35-a08f-45b6bee6950c","OpaqueRef:dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded","OpaqueRef:84aed1e7-ce75-1c04-9221-b41765e7ec25","OpaqueRef:e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8","OpaqueRef:e66a5a0f-8c8e-d629-ba92-1b1f0374498e","OpaqueRef:12c18c1a-3ecf-e8bb-646a-eaaf975c5813","OpaqueRef:fad90582-c075-9587-bf3e-d24d76692ba8","OpaqueRef:13a11943-2578-a1c5-b1f4-c5e25c5d070f","OpaqueRef:7a156321-0c6b-a61c-3cda-d9e580d35fbd","OpaqueRef:b005f138-d13c-ebd2-bdd5-1e4550f3ba91","OpaqueRef:c00d0e92-ac51-2914-ce0f-01292607e440","OpaqueRef:12dca690-28d3-8620-e4b6-a16beff24246","OpaqueRef:2d90779e-cf44-eaf2-b452-f843b56b58fe","OpaqueRef:79f576b0-2f82-8786-3ef1-7e90ef0fbd56","OpaqueRef:9a8e1a97-9547-897b-dddb-5753fc491146","OpaqueRef:ea2e80cd-54dd-4feb-e266-4c4a8acf47da","OpaqueRef:1f843368-7d86-3388-f5e1-37e7451690e3","OpaqueRef:612d96c0-c6d3-073f-c3af-a9a471d6372e","OpaqueRef:6a10a27b-0a5b-721a-3a2a-931542eb779f","OpaqueRef:c86ce51a-f6ca-5685-503a-e8f988d8f3a1","OpaqueRef:ee92c33f-0176-2f81-7850-d8274d543cbd","OpaqueRef:05e477c2-6a5d-f53a-ccf3-28f472a19553","OpaqueRef:f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490","OpaqueRef:40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f","OpaqueRef:654a657c-4f57-0385-b0b5-f11bc085f916","OpaqueRef:b0d95391-a938-cc75-303e-543e6a5c07a5","OpaqueRef:a46d2d35-0fdf-7a75-6025-ee689f25773c","OpaqueRef:b1dcf01e-9390-4ad1-0f2f-8263dd9476c5","OpaqueRef:bc55b6ed-c4df-4cf5-2118-8421fca4dfba","OpaqueRef:caf63646-b530-624d-9fa6-d6b1ecfb1c82","OpaqueRef:ab0341ec-b69f-cafb-c519-d7f18a922839","OpaqueRef:398b1e83-6b06-7664-4efb-ee31275c86f7","OpaqueRef:e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333","OpaqueRef:15b8f6a0-991c-7089-1ef9-13e4f77e2556","OpaqueRef:4a622ed6-a1ca-4eba-7b12-59480d645194","OpaqueRef:61c08156-de47-7f68-035a-7cb5e42de46c","OpaqueRef:7823a440-ae2e-1c9a-d613-1aca2913b5cb","OpaqueRef:e80dcb82-245c-feaf-ac10-679cabce6713","OpaqueRef:c7c664cb-1efc-9388-91d0-28100c085aaa","OpaqueRef:3f3480e8-c6fc-b6bf-05f0-a6377ab50db1","OpaqueRef:b5189a1d-4fd2-8953-ab9d-8b970655f47c","OpaqueRef:02e0b886-32f4-1f25-d83e-6e88ab11e20f","OpaqueRef:9cd6b930-8313-fbc2-7214-083a6d9ab81c","OpaqueRef:92e5a45a-edd9-635c-8929-b4956320c847","OpaqueRef:dbc87b09-5539-c8fd-9c4e-0659a7217325","OpaqueRef:cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f","OpaqueRef:866c4d54-adbc-cd19-1540-183e7ad9bdd4","OpaqueRef:43bed9f5-4bb8-551b-8540-922b40e0dd42","OpaqueRef:d1ff49a6-6866-db73-c3ed-6faeb5460a6f","OpaqueRef:4c98e491-6bb2-7ce7-460a-3a9471bbd598","OpaqueRef:9ee4625a-e02c-100a-c621-43852bfa3d29","OpaqueRef:a0be8b9a-d205-110e-3d25-525f697490b8","OpaqueRef:c236c0c3-35a5-f7a4-59d1-1f7c0b9f3e6a","OpaqueRef:0f24aebf-4e7a-325e-2741-6a1d2058ec31","OpaqueRef:16903632-2be2-df6a-f611-5e3c49cbe0dd","OpaqueRef:68842386-54d4-21d0-b374-3868c4195c7d","OpaqueRef:8ab9b8e5-1b7e-b05f-7889-da1b89be11f8","OpaqueRef:f455a71e-e0ba-5da9-3b16-89ad594976cc","OpaqueRef:f54e4617-9438-c1ba-d8d6-572fac712fb5","OpaqueRef:f2495b2a-1230-9278-bebd-93fa6d8b3fbd","OpaqueRef:29ad72a1-9024-a9b4-9224-65f66ba950f5","OpaqueRef:1794530b-615b-581c-6a04-f5582a545c32","OpaqueRef:845ce175-49cd-1ce3-0ffb-0267ce3afeab","OpaqueRef:fb9b9a1e-8d10-f254-c1c5-6848f19e82a8","OpaqueRef:a7af6687-e67d-2820-4eb8-d3f45c68f237","OpaqueRef:26bf73e8-f349-dba2-a7e9-9eb1e0b182cb","OpaqueRef:88f04cd7-9daf-fb60-ec90-720bc2a252c2","OpaqueRef:dffecfb1-e0db-1f2b-87e2-109d72562608","OpaqueRef:aa8f3abf-5f51-8ef1-038c-5f5391c1762e","OpaqueRef:076441c4-1fe6-1681-52eb-5593cd018537","OpaqueRef:b55d8910-9487-9485-5408-06d3a0232abc","OpaqueRef:13aef116-19fe-3a1f-2041-41f5a1a41e3d","OpaqueRef:c4739e90-efac-29be-27ee-b40047d88653","OpaqueRef:e5ab4d36-a5f8-3a95-ee23-281c9e16974f","OpaqueRef:81fd4de4-5bbc-7ba4-c2b9-8d2cf7e80974","OpaqueRef:4fd7812c-7d30-e97e-73fd-f428da986071","OpaqueRef:45182b24-24c6-6a9c-01c3-49ac4a6bfb04","OpaqueRef:b4c7644e-ca1d-c511-fba7-3f7474dae079","OpaqueRef:f6d2378d-a45b-bb77-a6d6-488805be984a","OpaqueRef:bf77e796-59d3-18c0-116e-a30e514e47ef","OpaqueRef:c70f5e19-5cc8-09b0-900e-752d10caae49","OpaqueRef:ab44acd6-dc9d-6533-3e96-eeb6690c03ab","OpaqueRef:95099189-9466-a620-d7d1-455aa85aa89f","OpaqueRef:67bfa576-0e16-1fbc-3916-7c7258702d23","OpaqueRef:181f66ab-cc92-1fc8-b3a9-8b4bb1f74acf","OpaqueRef:cae4947e-dfd0-ceef-f8e6-7de4e4596a0e","OpaqueRef:f48b609b-4cbe-b22b-5240-10d3b4df505a","OpaqueRef:19a7222c-dbb7-e646-6160-c30e82608772","OpaqueRef:b1203245-34c3-7026-c290-d998c5e94b69","OpaqueRef:7a3744a6-02a0-fe82-1201-31301aea1f2f","OpaqueRef:d24ca751-b516-edff-736c-3e6b0719115b","OpaqueRef:f458e427-5928-9057-c219-df99153fc075","OpaqueRef:895c0c2e-8b08-ed68-e7c9-c2ca8ebea573","OpaqueRef:0653de2c-ffd3-554f-d7be-1ecd0e140093","OpaqueRef:d1d95133-7aad-02fb-0ef4-0e3553fbfe1a","OpaqueRef:e215abe9-6d54-dc46-ed03-61829c477270","OpaqueRef:06044457-78bd-e927-7926-06cd6cda2dc8","OpaqueRef:f6424fe6-db32-cf8e-e2d1-b5e570812e12","OpaqueRef:7fa1e0d6-4301-86d3-f678-989f56a7f9e5","OpaqueRef:4e458b99-04ca-4759-4f2b-25943a270d11","OpaqueRef:3a33c68f-e787-39c5-568b-9ed6c00f64ba","OpaqueRef:ad25d5f7-52e3-29a6-3e54-9e8b0cdfe8b2","OpaqueRef:0f9a4bd3-1ac7-0694-d293-5b5cdd3a96d1","OpaqueRef:24b924aa-926c-879e-d2c1-fe778e82ccee","OpaqueRef:b91518fe-0a95-4001-8b10-34e30581fdef","OpaqueRef:b6096493-b47b-3bc4-a9b9-6d670a304017","OpaqueRef:4788c0d8-8cc1-11b0-c43c-0ea2b02689b8","OpaqueRef:60d79042-e0b2-74fb-5fc3-25ff0e9f200b","OpaqueRef:0391a375-885e-a621-2ed0-c5a05e6ba6d1","OpaqueRef:e0953596-a798-5359-5ae9-dc7d3cc23411","OpaqueRef:0c318a73-1355-8297-1aa7-7b59652d83eb","OpaqueRef:606aa02e-97ba-211c-ec38-d06b1ef5ed89","OpaqueRef:499c5989-c80a-2567-6f8b-50b0cf1f569a","OpaqueRef:0054aad9-6816-61a5-593d-ffcf68fe7c51","OpaqueRef:4f62cf52-b15f-d722-3b4d-51a9c67ecf9a","OpaqueRef:80305d17-0b56-9f66-6d8c-40abe30a928a","OpaqueRef:0d61beaa-950d-ce01-5971-cd55d77d0270","OpaqueRef:db89f0c4-5678-d02c-dbc9-ade235685c16","OpaqueRef:9a38b098-e1d0-7721-6817-e74d3cc63321","OpaqueRef:7ff61b17-b047-7486-b476-3a46d8a3f5dc","OpaqueRef:7e213280-e967-f94d-2663-7c0cd886aa71","OpaqueRef:196a22a7-3dab-e13d-19da-0e143da24513","OpaqueRef:434c57c4-d929-3bbc-e5e1-7549250f96a4","OpaqueRef:d443b5d9-94b5-50ce-a635-1ca03b81bcb7","OpaqueRef:3904db64-cf40-5c0d-9dfd-f97f8a5c4746","OpaqueRef:73494c5b-8e2d-5a6e-ffe3-1b7b7bc64370","OpaqueRef:bfac8769-a392-43a1-ee61-7efe606bddbd","OpaqueRef:1330c0d2-46d4-907c-dc55-725b8eea1b3e","OpaqueRef:49fbebcc-02ad-db79-cfb4-b3785cd53591","OpaqueRef:2c2b24ff-c9f5-e38c-ca9e-f3301fb492d5","OpaqueRef:ae7f81c8-3176-2c9b-98b2-0860a8df1037","OpaqueRef:9be81833-9377-e63c-a52b-84bf2885644d","OpaqueRef:ac16b434-b718-b77f-e797-4c8032c9a21b","OpaqueRef:de8bf714-f486-251e-f6f5-e566b8de1a9e","OpaqueRef:4f02c846-8a2c-b20c-9641-9f8019ccfe23","OpaqueRef:5eda22ca-411c-59df-3c2d-e8c40ee2a641","OpaqueRef:a23b22f9-bca1-caab-136d-9d1c6ee976b1","OpaqueRef:5b776f2e-a041-f093-8497-48c16883f061","OpaqueRef:1ede96f4-2e64-10e5-2e6d-17910d2cc719","OpaqueRef:8441d718-7ef2-b325-bf57-e30dc4db816f","OpaqueRef:b58c1211-94fb-cc3f-668f-9c64343d5ef6","OpaqueRef:f91b4e6e-e238-9fad-e78a-a61f6c222122","OpaqueRef:2c3326c9-127f-aee9-2e6b-520465156ca9","OpaqueRef:d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0","OpaqueRef:da44ea34-34ce-eee1-0fe5-e2fbd374087c","OpaqueRef:291376bb-00a4-4520-d42b-6fc685798827","OpaqueRef:c0eeaefd-fce4-4122-bf5f-6548c7627ecd","OpaqueRef:c76febe4-ccb8-b0f6-d9f3-eddfb8068cbe","OpaqueRef:0a6ea798-3a27-ebde-9356-6cdd5aa0af1c","OpaqueRef:ff848eeb-fe92-c7b0-9a93-177287cc1871","OpaqueRef:4eb6785b-2126-b2f8-2c55-f5a0b59694e9","OpaqueRef:f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473","OpaqueRef:7862cac7-5a00-3e1c-fa98-1ccad464efde","OpaqueRef:7afd9229-b870-bc5f-9dd0-c8e3aae1edd8","OpaqueRef:222b2a69-0e63-09d7-7547-63753f22a07e","OpaqueRef:ab13cd53-fee2-e913-c1d5-d8a73d183c04","OpaqueRef:50c826b9-553f-0f9d-6ec5-e56c4bfc700e","OpaqueRef:dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9","OpaqueRef:f24bf12d-005b-9aa6-7a45-1007eb1d8d47","OpaqueRef:e558eee8-cc61-ab94-2838-d11ecb19b9de","OpaqueRef:f0b68388-4ffe-ae16-785c-73bf1daf76de","OpaqueRef:171d112c-db97-c8ca-5322-c06f3b95f987","OpaqueRef:943b87d0-c97d-9dc3-4861-4cd3405d2166","OpaqueRef:562072f2-255d-6b53-1f30-4665c151ba36","OpaqueRef:ce7d44fe-5019-f0e1-c44b-284d048b53ab","OpaqueRef:889dd3b9-5554-3819-b5fa-1853a3527d33","OpaqueRef:cca9c4ef-8dc4-3928-6973-1001fefddcc1","OpaqueRef:1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb","OpaqueRef:bb0a41c6-9f17-3373-fceb-43ef16b241b5","OpaqueRef:40c692b1-cd75-58f2-1bbf-47972787d296","OpaqueRef:829881ed-22e8-99eb-6180-689a1d01d1ac","OpaqueRef:78595ea9-9a7b-2bb2-b7ac-888947bb5f71","OpaqueRef:05540a9b-fd89-62d4-15c2-569bb74a45c9","OpaqueRef:8624fdc6-5a79-3477-2f2b-a692d687856f","OpaqueRef:6c868e70-45f5-7510-e697-31565da1b645","OpaqueRef:50baf2ac-cd2d-8c58-6b49-7d922a38d506","OpaqueRef:b8d7db71-88c3-3973-0f76-afb5ea8758b2","OpaqueRef:b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa","OpaqueRef:c7b3adec-b936-8480-8162-4d0176e80494","OpaqueRef:1611b4a5-6d76-0608-be83-bb85cc0f4401","OpaqueRef:76add74c-9a76-ec09-e9ba-062f5fad673a","OpaqueRef:1eb1cfda-f398-99f9-2b7b-5a186bfb5769","OpaqueRef:48e48870-e314-22ff-23e7-9c81e0a09de8","OpaqueRef:6b99cb7e-9854-bbfe-13c4-23c85b58cd27","OpaqueRef:3b17375c-d99f-b75d-771a-d6bd526bc732","OpaqueRef:330de495-5f10-90ae-9985-a622287978cd","OpaqueRef:6950f134-0be9-1cf8-a418-b84f72b5c550","OpaqueRef:2da47eda-326e-bc79-2991-4178a7f91aa2","OpaqueRef:d3e10235-4c09-4b21-ac38-f5e7118ace9a","OpaqueRef:1cb862c1-6e27-7e9a-1757-d3340ce05a6a","OpaqueRef:4bf0efdd-5a06-f1f2-9e42-235746e68e72","OpaqueRef:07e67067-0db3-473e-f720-1b13cb7165cb","OpaqueRef:59d3a529-afca-f562-204f-bc882519cfc6","OpaqueRef:6745eaf1-b724-7ba1-6adc-6714d87ed055","OpaqueRef:fb5f1cd9-639c-fe4e-736e-59f602bd6769","OpaqueRef:63f5ab90-88e3-b9c7-869a-ad1e4725f6c8","OpaqueRef:8b2811fe-bf52-d656-379d-c4dc786d2863","OpaqueRef:f075184a-6d67-aeee-23f9-4af9fb3fdc70","OpaqueRef:72acb54c-837e-f60b-5b73-54258ba6f8ce","OpaqueRef:fc02d213-9915-5d79-f9f9-77981d5e7e61","OpaqueRef:fe33f11b-7386-0023-20a5-5d66b81d1550","OpaqueRef:ea08f6e0-a317-ec4e-b863-b58cd69e6f55","OpaqueRef:07ba3c3a-6d81-f137-050b-460a090cd95e","OpaqueRef:c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e","OpaqueRef:b8e13938-03be-2a5d-fc3b-425b8f7966f9","OpaqueRef:d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8","OpaqueRef:6419de42-529d-e793-ac14-e1afc0f4d3d7","OpaqueRef:e17a593c-8a4f-f38a-ebca-9bfefa5ca0d7","OpaqueRef:52e71fd0-4e0c-c56d-ecbe-1258494bd886","OpaqueRef:7980080f-48b6-928b-4b88-114da9c5fd80","OpaqueRef:36ef005e-7879-0edf-e7d9-54b5b5f6e467","OpaqueRef:ff2c84a9-3ea0-6792-fe4d-3215c397f3b0","OpaqueRef:18d16a24-b68d-43cf-69d2-7a5868998306","OpaqueRef:6d180e8a-3fc3-4459-2526-189b389da794","OpaqueRef:2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4","OpaqueRef:9f533cce-7cfe-9091-47ad-d061296f0ab7","OpaqueRef:66a5a073-316a-fe3d-aa44-7d9f19e49417","OpaqueRef:4a2b195f-f477-f143-e4db-f96913abdf9a","OpaqueRef:4af3e675-5dd0-08c7-b67a-414e85223d40","OpaqueRef:cd17195a-9274-0b74-bc8e-3f0c916bfbce","OpaqueRef:864a54cb-981c-8bba-19eb-2c76ce406359","OpaqueRef:37fed550-72a4-a8c8-5468-8bc3bfd1554e","OpaqueRef:800592e3-30ac-bc00-4274-f9c23e335d57","OpaqueRef:699638de-d890-04ef-ea8e-5473742ceb88","OpaqueRef:5dc61f97-020c-3958-1531-9d950ebad058","OpaqueRef:0f104484-8054-bb43-0685-27030f6bebca","OpaqueRef:7122efb6-3045-2da0-b503-1524b692a5d8","OpaqueRef:79a22291-0fca-eeef-d23a-1b796b2123aa","OpaqueRef:fc844b8c-44f7-0a47-136b-9fdae98759df","OpaqueRef:539ace0a-c714-562d-f153-ce5df5f92265","OpaqueRef:a714bc2b-93c4-7785-d84c-53e40aaabc73","OpaqueRef:caed3120-c6e2-8d1f-4498-6aa7d966a575","OpaqueRef:aae2577c-a1a7-9646-9bc5-a9c082108eab","OpaqueRef:4bfb1275-7c46-d751-4ab4-f19c5e83bd41","OpaqueRef:1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f","OpaqueRef:96fbe84c-1cce-dab3-c396-bb28962a8aab","OpaqueRef:0b3c3543-7504-c5eb-4673-31e51971670a","OpaqueRef:94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e","OpaqueRef:edd1d574-8e08-4b9f-b11f-0e7d4b8cd21c","OpaqueRef:d6eb160a-fa45-e966-907c-777b372ea662","OpaqueRef:42534039-8f37-bce6-9039-93d2102f99cc","OpaqueRef:43e4cda9-b000-a516-5bca-fd645320cd94","OpaqueRef:f21699c6-5b6b-cdb6-1975-bc9a4db2bf4b","OpaqueRef:99fb86a7-2a9c-1f78-7c1d-5dd8507e9be4","OpaqueRef:b6cf7d25-180e-be25-9159-e0e307f4aeea","OpaqueRef:312e70a7-5688-3a9d-a2cf-4205e3f90291","OpaqueRef:85dc0856-788d-cf0e-f03a-f48410eb8f09","OpaqueRef:1b3e1eec-b9f2-7116-639d-20bdbd0e1391","OpaqueRef:af7b137a-4073-820d-6d70-d8a2af8fadcd","OpaqueRef:db06e822-3b47-bdb9-f423-547920353742","OpaqueRef:8f9cbce3-0281-58b3-3b14-aa2771ab5f7e","OpaqueRef:659f50a3-c9d9-42dc-2fe2-4466b1f79ce2","OpaqueRef:6da94f95-a02e-f573-12bf-dcfde7e43499","OpaqueRef:41c3ad8a-a3ed-1b47-c9bd-8a94704ddc19","OpaqueRef:5ed9712b-4b5f-6ec7-8403-cc4d9df52722","OpaqueRef:8f4e82a4-f8be-c01e-10a6-d0a74f28733c","OpaqueRef:d5d12c34-1ff7-0549-e6b1-b333ad750dc6","OpaqueRef:956adae3-0a93-7d20-5461-a3ad098af157","OpaqueRef:ba585c04-ee5f-5a5e-794b-ef25c06fa1fd","OpaqueRef:b09c0eac-e6f7-a1e5-0fe4-3adf9d6d38bc","OpaqueRef:1482f01e-2355-577f-f230-2e51fddf34d4","OpaqueRef:cce6834a-f698-3755-c4b2-17d866f608d4","OpaqueRef:8dfb37f5-203f-2ea4-597f-7c350f6233f1","OpaqueRef:3f9bb6d6-db4e-b115-a2c3-adf553886983","OpaqueRef:2770c2e9-7d35-17f7-5f34-9814d604a3c7","OpaqueRef:9760f691-5295-ecc8-bf2c-3865249c1f6b","OpaqueRef:a2a09fcd-1313-554c-9051-f4dd1c4474fe","OpaqueRef:82b892b0-b416-c7a1-298d-6030038b4d1a","OpaqueRef:955fa7ad-d7c2-4ade-aa2b-0bc95fb4364b","OpaqueRef:4a16dd04-0fbb-e5bc-af88-01046c72c54b","OpaqueRef:9350ea5c-ca28-1ece-9c6f-1c4ab918d119","OpaqueRef:d529b00f-b546-b67d-c50e-f0d216b2ef56","OpaqueRef:1ea042ad-d922-f7cb-90ab-9ac09e011670","OpaqueRef:0d87eda4-f5b4-1c19-ff98-f1bc171afb8f","OpaqueRef:6d3feec4-ad36-040d-b555-8c49b8015bf2","OpaqueRef:4c964b58-b18d-599c-140c-3d7e6fee0949","OpaqueRef:f9abf01e-9fd9-657d-9ad8-9d63a39e7c1f","OpaqueRef:86b1fd97-2498-0209-d341-78b596de9885","OpaqueRef:3f6f6ef7-c08c-f1a3-a05f-33956e2f3e2e","OpaqueRef:1f776a73-446d-1f0d-eeed-44ad6464f02c","OpaqueRef:52df136f-591e-cd8c-8588-3a34b9be4117","OpaqueRef:ab69daa2-fbe0-d709-901a-80bb8fa49f15","OpaqueRef:fa09b51e-0da5-a900-4da2-33752ad8a112","OpaqueRef:bebace76-69a8-cb40-82aa-5ecd4b882075","OpaqueRef:f05760c3-46d9-9cf5-8831-330943a33ce2","OpaqueRef:9a9b62f1-2fae-cc0c-03ff-147b35e7917e","OpaqueRef:e39b5c55-fcf4-41de-74c9-a38e278e85db","OpaqueRef:ca111bd4-768b-a624-f752-4d4a51ab2471","OpaqueRef:66ce4f5c-82d0-457d-dced-433bb8b5229e","OpaqueRef:16474184-4484-6193-a7f4-2baa521a56e7","OpaqueRef:cf7a0ae8-7440-c6ac-ef72-5454aadc19a7","OpaqueRef:6226ec36-c110-cf46-6923-b8917c576b09","OpaqueRef:209713e3-3188-5f83-125a-4d313e4aac7b","OpaqueRef:dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4","OpaqueRef:1c6ae07b-8cc7-3334-d143-40fba15e5d1b","OpaqueRef:26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1","OpaqueRef:38d676a9-1eca-992f-8768-65856d28ec39","OpaqueRef:76efe753-ae98-21ef-4ee0-c06be1ed6bf8","OpaqueRef:7ace0159-c007-b95d-d43e-90af54f7b4f3","OpaqueRef:0511b768-32ca-e60a-83d1-6089ee037abd","OpaqueRef:8b731fe2-d6fa-2b5a-738b-aa1501e2a00c","OpaqueRef:c2e03e88-ade6-a5ff-db5b-b92e0bc2e580","OpaqueRef:627b53af-258b-eaec-feec-9a1cfb5e915d","OpaqueRef:d6b2a0b1-1991-b740-0d48-242d5b3463b2","OpaqueRef:5502ee79-ceec-099c-740a-42e395dac81b","OpaqueRef:b498514f-0f98-ec60-df87-f1feed07141b","OpaqueRef:6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e","OpaqueRef:0cd88229-8eb6-dd98-09cc-8635498afcd2","OpaqueRef:58ac1559-04a8-f7ad-2224-53591cacfcb7","OpaqueRef:d7450039-1e27-7ac8-acc5-a698cb19a525","OpaqueRef:ae095db7-583e-cfc0-2cd3-db791d3b1671","OpaqueRef:8ddf8bd4-4146-aab7-5e60-37b3c59f060d","OpaqueRef:00f9116e-139e-c5c6-e647-308230cc9f5a","OpaqueRef:70787b4c-26d0-f9c5-9b31-1c9e291035c4","OpaqueRef:14ea86d7-eccf-8790-fe68-2cee27f915c0","OpaqueRef:7f355dde-ac8c-9a02-ce96-16a1a08c0836","OpaqueRef:1c6bfef7-d9c9-4b53-4184-c72d5896e910","OpaqueRef:8ae37793-9d90-d55d-bd48-328657eac262","OpaqueRef:4748a78b-fbc6-06d6-9a9b-0fee76a37e42","OpaqueRef:922f39f2-c948-d0cb-813a-8fb675fe1209","OpaqueRef:5e5aa3af-ee5b-3973-2b26-cf1882900d7c","OpaqueRef:ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b","OpaqueRef:ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3","OpaqueRef:d13394ed-05a5-8a53-ba59-20525ec873be","OpaqueRef:c71d068d-24c4-6d68-8439-3078c968141e","OpaqueRef:bceff7d6-7267-91cf-fef1-eaa65de886e2","OpaqueRef:b9a4873c-7e19-ebec-d524-f1d69da5324b","OpaqueRef:a433bf84-7725-f4e2-6f89-31054403dd87","OpaqueRef:e254be14-8fe4-916c-b287-25b8be1a6502","OpaqueRef:fae19164-aa28-38ee-e1e5-a3a3082729bf","OpaqueRef:86907190-69ac-4a19-df3b-6678644e64e8","OpaqueRef:1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f","OpaqueRef:b132a88b-b242-3cf8-0459-4bd858b7dc93","OpaqueRef:505fcb18-5888-5bf2-75be-6235aba2e6ee","OpaqueRef:d5b5a870-45ee-4124-ec9d-3f16ed2c7db7","OpaqueRef:ac809817-a5db-b4a2-0b14-3ba7c0ff2165","OpaqueRef:7958cefd-9fdc-f836-fedc-22f89fd06ce2","OpaqueRef:176db48f-09fe-625d-8d3f-0588f796751a","OpaqueRef:dff728c2-2d9f-e6ff-57ef-a0e31f0927b6","OpaqueRef:7c4df9d1-26c8-8986-35f7-a1ec7f4804d2","OpaqueRef:0a561bf4-9228-cb18-0ce3-7d2a0d302800","OpaqueRef:21d14229-6be0-a401-6580-4ff98d459f7c","OpaqueRef:f850300a-1604-59c2-5cab-0a1380798fbd","OpaqueRef:3c6c94b2-f160-ff62-be39-e917e080f3d2","OpaqueRef:26e20184-1c7f-5596-b456-22ff28f2562a","OpaqueRef:5f5d40d5-5171-dacc-b6ff-497744f2d6cf","OpaqueRef:92d0e454-d08f-fe30-f288-33ac5e9a7193","OpaqueRef:98bb0b7e-5f22-9296-3405-4212a5746d83","OpaqueRef:2d33e554-7bd7-bbdb-8047-76d3195e9258","OpaqueRef:99f98089-5ec7-3e6b-c6cf-fe6ee4ca8bdb","OpaqueRef:131b3d34-1ecc-b92a-d1ff-7a45083bd6bf","OpaqueRef:724d860d-c6b0-aecd-97e5-a28c944cf21c","OpaqueRef:5dc23f7d-7008-5d99-0cd6-780fff26f7ad","OpaqueRef:332b3889-7848-14d0-1482-baff5d0636c8","OpaqueRef:69cd7eb3-9c03-a6ec-1942-77ccfef89687","OpaqueRef:49f55d27-bdb9-ea99-50c4-bab151c7ed0a","OpaqueRef:97f064fb-c947-b723-0102-5721b04079df","OpaqueRef:9eb90ac8-0202-8169-1668-8dc063319fe8","OpaqueRef:f781ba26-396f-e041-ad4a-88d04bace1d5","OpaqueRef:c4d88e0f-5705-b814-ebcc-483efb7cab9f","OpaqueRef:bcc0fef8-e248-bdf2-78f9-8611572bfa25","OpaqueRef:be4226e5-cc5d-56b2-44c3-f4d1f016b63c","OpaqueRef:52f4e45a-6737-6ba2-78f9-f76dd1b39419","OpaqueRef:d687b364-5ce1-9ab4-0594-1568e7962192","OpaqueRef:b433a6d4-aac5-d6f5-429c-fb6e4c3fb586","OpaqueRef:4fe83cfe-641d-099a-ca6d-921f4f3744ae","OpaqueRef:e45ebe26-d512-e459-4654-599e54505052","OpaqueRef:fb50a443-8fe4-c0f0-a40a-35866e647531","OpaqueRef:06528aa5-c284-54b2-d6a4-27e9eb6e7116","OpaqueRef:70f39d80-4c28-3d5c-35dc-54b207783366","OpaqueRef:894dfae1-9671-e03c-f718-537230205889","OpaqueRef:caafd881-5d9d-b540-4676-3589c250a6c9","OpaqueRef:157bc748-69c5-d7ce-1655-7ad8c5078239","OpaqueRef:4d5bc2f8-aae8-a968-6d42-5bbedb41cbe4","OpaqueRef:2b7dadfd-042c-c435-c96f-e91c489b64e3","OpaqueRef:4449c091-e436-df61-1829-db3afd4b7939","OpaqueRef:25dad5ce-deb4-8208-fcb6-b393ab735a7f","OpaqueRef:1062625b-dc3e-7604-3863-eac2fc25cfcc","OpaqueRef:0b33ba31-b80b-e074-7262-65ad91ff9313","OpaqueRef:965c6e0f-00eb-0f44-44fb-44155f833daa","OpaqueRef:759f62d0-2fbe-ef5d-cd7d-579117dca28f","OpaqueRef:10d871c1-c065-b472-0fef-42311c39c9b9","OpaqueRef:7a4d8574-73c5-a75f-8e25-62e9d8d87113","OpaqueRef:434bfc07-d354-2256-9a7a-d48b4df941bd","OpaqueRef:298b2e59-3b4b-dfa7-650a-7a70d07520fe","OpaqueRef:6c4904c4-41aa-cc49-c626-481866b4a6cb","OpaqueRef:0c4ba76b-b445-caca-047c-d0dbd9c92973","OpaqueRef:7a6c63b2-3d09-4f35-e6a6-0d24d0cc8116","OpaqueRef:a8bfecf9-7e65-f0b7-f087-a59845369df3","OpaqueRef:2b1dd077-3590-b7cb-e141-0c960de7d0ee","OpaqueRef:4bf590bd-2137-55dd-90cc-1735a84da788","OpaqueRef:bb5242ed-06d6-e8df-b475-df888d527d33","OpaqueRef:882aa08b-b154-b2fb-8d7a-ff5e1121f986","OpaqueRef:1e34f646-0d83-991e-6d57-53abf105526b","OpaqueRef:ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33","OpaqueRef:31a52751-6ebe-5592-af6d-ea64a7272c60","OpaqueRef:814c2dd9-a7c3-b7b7-ecf1-f7f30b2f3125","OpaqueRef:308040cf-181e-3abb-9378-8dac73752bcb","OpaqueRef:b9c90c76-a349-aa8c-e732-21516da712a6","OpaqueRef:64196488-4486-d1d2-88ab-ca36908f966a","OpaqueRef:a2a5b2a7-b9e0-a89b-65a7-dab5b977e250","OpaqueRef:57eb64a6-04db-6995-2a99-3eaf96be5263","OpaqueRef:915e4dab-9537-bfa4-fac9-85addfb3eeac","OpaqueRef:33d71acb-3055-9b64-19e6-11eca4f43e8f","OpaqueRef:46279397-3447-5388-b6c1-2322f68ffd3c","OpaqueRef:6f21d652-38a6-3969-838c-c667c97a37eb","OpaqueRef:4f7a7bae-a4ae-9024-ffd2-3bfe706c266b","OpaqueRef:2ef836d2-b9dd-5a23-c794-2e7589f36be0","OpaqueRef:e0ca9324-e1ad-9179-5282-f7f36641bb1d","OpaqueRef:cde0e8b8-03cf-537c-26a1-2f5a42d19add","OpaqueRef:b0b429bc-37ca-a61f-375a-8d7fce2156ea","OpaqueRef:f5df9029-1e65-e5e2-3c5e-b87aba3a034f","OpaqueRef:4aab3d2f-e037-ae17-f252-a9c3a710f703","OpaqueRef:067511f8-54b7-de65-b4d9-dfb2089ac41a","OpaqueRef:1bb99abf-a34e-2a07-c87a-871871b84931","OpaqueRef:a1870f39-4780-874e-a27e-b6d0d6b00c62","OpaqueRef:b50cf74e-f790-b097-7804-89f26f0bdf5e","OpaqueRef:051d2068-cedb-9155-c92d-1233e9fbc3e5","OpaqueRef:98742ea3-1cde-9b10-60fb-8aac5e8ea5fd","OpaqueRef:b68cf926-2d18-a589-fc01-3899fb72e7f9","OpaqueRef:2fa7f35e-eb7b-3e92-1773-53254df5bac4","OpaqueRef:5dc6aca6-9629-271e-f8fe-e8697e96e830","OpaqueRef:3e520f03-18e0-1db7-a1bf-0688e967b901","OpaqueRef:32978aed-c32d-e3c2-f0ac-634b8bb7e0dc","OpaqueRef:5215045b-f90b-83a3-02ea-d2440c9e0d56","OpaqueRef:84f916d1-f4d8-74a4-cccb-86a085eceb13","OpaqueRef:1a107baf-c2e3-52ca-0b73-148f1514a238","OpaqueRef:929599e4-98c0-722d-54ac-5f2ffc3a73ca","OpaqueRef:1ba238a8-b474-3dff-5974-fab4099a3a7a","OpaqueRef:ca0e5dcb-c5f3-bba0-db79-f9f3b5f3ad4b","OpaqueRef:49e40dbe-751f-51e0-6d70-53c7a7d80b18","OpaqueRef:af6cd91b-d39a-af43-aabf-3f0d477c5e32","OpaqueRef:72183d9d-6b17-543f-d35a-461d3d2bcd28","OpaqueRef:0720d352-4b7b-fff3-45cf-860aee04908f","OpaqueRef:f8375961-adf9-f6f8-f8b2-333ac51d3fe3","OpaqueRef:1fcbc379-fbbb-f702-d1ba-7158bead56df","OpaqueRef:520813ad-5f48-b68b-da3a-36a944d0a2d5","OpaqueRef:1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d","OpaqueRef:383340ed-7b65-ec60-3687-cd5b9a22dd4d","OpaqueRef:c6cd9483-96d1-5a4e-8272-58d62903ba13","OpaqueRef:c935c5c6-6224-1650-60e8-8fe70daaa5c4","OpaqueRef:d9b34a9f-bd57-74ef-44ca-d5dc42e857bc","OpaqueRef:603d3545-44ef-8bee-7e48-7a9ec1fe0f4c","OpaqueRef:2ab258fa-f9f0-53ca-1a97-e319259e63d8","OpaqueRef:92828369-5a7f-e0cc-ff8a-20ce4e6a182d","OpaqueRef:d98c92f1-3335-9aca-ecb5-60524be8cedd","OpaqueRef:8a2c5a80-6a75-4b6e-9a15-507e5e2feaef","OpaqueRef:0350282e-6237-8da2-ed67-a8503e1e5213","OpaqueRef:f5ce748e-a2df-70d9-39d3-07c6181cabd1","OpaqueRef:dbf21a59-f453-5f2b-f9ef-2e5ba8c84e51","OpaqueRef:cf2e8f13-038a-7d7b-5021-c881eadac803","OpaqueRef:ff8c2c53-80b5-03a6-88c0-ced5d925bc2f","OpaqueRef:027a3a06-ffc7-fc53-f107-b8ca78294326","OpaqueRef:76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d","OpaqueRef:bf7f941b-03a6-dfab-5f08-5f1d5e046a8d","OpaqueRef:91b38c06-f1f7-acd5-a6f4-5e10e9decb8e","OpaqueRef:a8accf3c-5e68-c1ad-347e-4b14086a0a3c","OpaqueRef:0298a263-16aa-fa51-84d9-bf231b03257c","OpaqueRef:b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8","OpaqueRef:92424d6e-6c8b-e6cf-52f8-c1ecb18ac162","OpaqueRef:b9b352a0-6f8e-854e-71b3-04d31b6483fd","OpaqueRef:e9d70821-4d5b-c6e8-0769-305ea28819df","OpaqueRef:70a45f35-52c8-981e-b5b4-756e9dd422bf","OpaqueRef:29f5163f-f0c4-062e-38a7-e652c0ed5987","OpaqueRef:fa0065df-12b1-d909-9f18-0ee0e5905322","OpaqueRef:0075f8e8-9cd8-3a4f-89e8-f53ff0121590","OpaqueRef:75e54d6a-4fb2-f9dd-f2d4-de95edf0b0e0","OpaqueRef:f1c54063-e84c-fe26-cdf1-4c3aad46c0b0","OpaqueRef:1c8fc301-adcf-4eec-d563-ff7e05e926f3","OpaqueRef:311d974c-0afa-b82c-5a37-5a82f64989c9","OpaqueRef:89e4201d-e7b7-dd2a-702b-9f12ed923649","OpaqueRef:1cd93736-a017-b50b-a7ff-f84557f73b64","OpaqueRef:52e94cd3-f9ef-225b-9d23-133e521e39ec","OpaqueRef:43bd2f40-5b02-5f5f-f2de-3355ce64f08d","OpaqueRef:fa8c8b9e-82c2-1edd-0621-58b876ecb786","OpaqueRef:25efdd5a-5572-0245-6f76-edd4d8ba87f2","OpaqueRef:43f83df9-8b01-dd53-da07-19c763c45316","OpaqueRef:b73723e7-74ed-dae5-a160-a31e2f96f64c","OpaqueRef:3763d099-4a3b-3905-7603-8e5a98dadcc6","OpaqueRef:7a01d196-5bf3-d888-ca53-f7c308d79daa","OpaqueRef:5b8ed78a-2c12-c8e0-c706-c960dcac0e02","OpaqueRef:f5e84d5c-9173-a902-ca07-aaa980e78e7a","OpaqueRef:5c047b76-1c9a-d8be-5b95-3df509f9c875","OpaqueRef:d778a608-bae2-4a80-3c10-c2ee0c3ececc","OpaqueRef:e573799e-51de-10dc-7dd3-a55252fb8971","OpaqueRef:f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088","OpaqueRef:da79116d-658d-77fa-9595-51e744744bd9","OpaqueRef:7b46c171-b1db-a323-3b76-457ea95372d2","OpaqueRef:363f935d-b9b0-96d5-6286-c7c611a0a65a","OpaqueRef:58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f","OpaqueRef:2072d2a6-0563-826f-693b-1d3d46c4d4ed","OpaqueRef:ad8c841c-d7b0-29d0-bbfc-e102b0cf29db","OpaqueRef:ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c","OpaqueRef:fd67acf4-c454-2308-703d-b1c548829599","OpaqueRef:531b14e0-799d-158b-2741-b0722c44ef81","OpaqueRef:8deb8400-477c-d1ed-5e43-3a57cf19fc18","OpaqueRef:bb254b62-2ce5-d18a-ea89-b9951d43540e","OpaqueRef:dac42fca-3f2b-9f12-984c-094ee89b8a3b","OpaqueRef:bee385fd-db51-c95f-5dc9-e0cb27058fe4","OpaqueRef:898a10e9-4929-667d-1f69-6084d82f95f2","OpaqueRef:0093bc43-35e1-4d14-5ae8-0d48a7c7696d","OpaqueRef:8e640d08-58a8-3220-9ad7-2f6ce7ffcb54","OpaqueRef:f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3","OpaqueRef:a6d058f4-e42b-6f54-7e98-25d842a26157","OpaqueRef:73a0ada7-ab59-3fc1-aca5-d649c7fe52b8","OpaqueRef:4351b221-3862-c22c-d2b0-f4e63dac5151","OpaqueRef:4cf2b236-677b-9ed4-7466-d0e1337a0549","OpaqueRef:b3db5cf5-cf31-a92b-edbf-05fe326e9844","OpaqueRef:e3370dac-0910-8f7f-a68c-aa87ce861519","OpaqueRef:68d3594f-230f-4fb6-5177-fd760bca1be6","OpaqueRef:6ad64869-f5c6-00aa-b2b8-8281cfd24e88","OpaqueRef:bfd6aaa0-e3c7-2b73-47c5-06903a2d09bd","OpaqueRef:dc3df6cd-f17c-73a7-b27d-eb95a8be35ae","OpaqueRef:ab7a8ddb-0a66-957e-b67c-2623919816b3","OpaqueRef:70178e57-b50b-900e-a105-0b50d5961ad2","OpaqueRef:84facb10-a76d-d587-f1b4-fd1bfffbbd13","OpaqueRef:f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f","OpaqueRef:5e271507-05bb-a4b4-2aa1-45a1d678a3c3","OpaqueRef:9b129852-5a6b-938a-6657-d7fb8c0fd1d8","OpaqueRef:1e749289-18cf-7c15-dfef-7c563ac409d8","OpaqueRef:182ecb35-daed-9ee8-efc7-cacab112b589","OpaqueRef:13cd1c58-7c1e-1ab4-65ed-9ff82b888688","OpaqueRef:8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0","OpaqueRef:a06fc2d3-81c9-76bd-b9b3-d00973854b22","OpaqueRef:29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2","OpaqueRef:941b5182-310c-b1c2-fbf4-1409241add9a","OpaqueRef:975df00f-053b-2fe4-70ce-41b80b2814f9","OpaqueRef:9bcb81ec-e4b1-1dbd-9ac6-d1ce045e431f","OpaqueRef:6595c05b-14d4-782f-08c1-76d06528b230","OpaqueRef:ca855242-855a-9952-32db-65969a8ce3fb","OpaqueRef:6dfd9693-4e48-6ad0-839e-1c5788befe1b","OpaqueRef:ca8cf9dc-ddab-1305-639a-51d0047802ba","OpaqueRef:bfdf5c96-6ada-a5ef-cc47-ea345940662e","OpaqueRef:f825b844-c7b4-2900-cf4a-5cd059d26dc1","OpaqueRef:1681d655-5c34-3b05-1c48-771660b0f3a6","OpaqueRef:3503fe61-6e9f-f993-a243-f0810918323e","OpaqueRef:53ca7741-71e1-66c1-c42d-6d9351b41551","OpaqueRef:39bad4e7-597f-2ecf-93c6-39b8d945de5d","OpaqueRef:a1421191-fe98-3281-a792-d201a2de2bf6","OpaqueRef:1f9dfeb1-7d99-1409-e6eb-d9522e1ca3d6","OpaqueRef:d535938f-a852-c579-75fd-f7064065ecbb","OpaqueRef:d91aa452-182d-736b-a240-4414fe355a93","OpaqueRef:7397cc86-02af-1ace-9d80-ecdcd9c4de15","OpaqueRef:02d648b1-48f8-6a7a-3051-f984dd7c1c85","OpaqueRef:0b0c7ac7-145f-625d-4c63-97793c187f0a","OpaqueRef:a1a30854-8645-fe8b-81c4-f296f125254a","OpaqueRef:631cd70a-a589-ba49-f1c1-918a54e47ba5","OpaqueRef:ec32a884-e824-e654-e472-1ba82e2db748","OpaqueRef:7d45ebaa-c032-5209-010f-bda83e9995c0","OpaqueRef:13657521-3100-32e7-3d38-a1c0df842c77","OpaqueRef:4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259","OpaqueRef:55377552-76fe-e589-d4cf-02f64f49f350","OpaqueRef:d36bf25c-cffc-3785-e9a4-1d6dd826cd03","OpaqueRef:97b2ea1f-c272-bbfa-4e1b-ed567d0cc9b3","OpaqueRef:cf9b90c9-439b-c33c-c4eb-86e8b1bf4157","OpaqueRef:53e3bde4-ef9a-5933-62c6-89a992f399b0","OpaqueRef:216b0366-cd42-24db-57b1-3c8fce70e4ba","OpaqueRef:5beceb5c-5880-09dd-3eba-d5133d463f9b","OpaqueRef:7bd495ef-abbe-3363-4f68-64a70eed83eb","OpaqueRef:61fbb0bd-b453-3369-98a3-53f4f8a7fe6c","OpaqueRef:00056679-3372-9b8e-6488-10d423edb0ad","OpaqueRef:64067282-0137-c32d-3ae4-7b20b6a93ad1","OpaqueRef:97015ed2-cf9c-9ff4-9d34-b1ae9a377788","OpaqueRef:c492097b-20fb-0584-6559-893d4d35c82d","OpaqueRef:de3c3005-8901-9213-2c61-45e6d489c801","OpaqueRef:0fd4e192-6082-738e-c2c5-27cf2cb5f467","OpaqueRef:3f4867e1-9401-bc2a-a260-5561bfe8d08c","OpaqueRef:3ad57875-8d33-5adf-7184-24f4df2b6981","OpaqueRef:5c07d45f-d9f5-207e-1e3e-70c0b5abc69b","OpaqueRef:73ba289d-8cab-51d5-a8f6-ae42be46b61c","OpaqueRef:88447749-f966-bae0-a649-ad12c1391cc2","OpaqueRef:9799e20d-f5ed-6371-1fd7-6ad3fb1df729","OpaqueRef:b06ba59a-e556-7f5c-902a-871a8004c149","OpaqueRef:6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2","OpaqueRef:522142a2-c5ce-4095-85b3-13bf2ca36175","OpaqueRef:2fa043de-5e00-c856-7ceb-0b0a266f0a4c","OpaqueRef:7356e67b-7806-3749-5459-4409094561d0","OpaqueRef:e18acdf2-b7ed-9d85-2aad-10e4a767b62e","OpaqueRef:81ee6b76-da69-18b4-18b1-f4e09aa1b119","OpaqueRef:61080452-d30d-cfed-7985-400322d30d53","OpaqueRef:bb7587c3-a0d4-46e4-af05-6ed1cc33d23b","OpaqueRef:1cf6f512-a2d7-1189-1e32-3a1e58c1e66f","OpaqueRef:a04e6272-743e-809b-dc4b-a2edd6fdeb0b","OpaqueRef:5f3a7f4d-29e6-df00-2bd0-6a16b0fef414","OpaqueRef:6ed0eebe-e588-e5da-a6c5-c24353ce5d42","OpaqueRef:e46476eb-f04e-f11e-ea3c-88dbe418ccb9","OpaqueRef:d6b34164-85a4-cd30-0470-208c285eadb9","OpaqueRef:cb1caf20-8fea-fc40-c45f-7ed34f3a17bf","OpaqueRef:9c3da382-c08c-24e4-6f06-66fdac2ecbd5","OpaqueRef:e9b01f04-bfbc-8d01-dd70-6e9298c449f0","OpaqueRef:57d49215-72b9-ca21-6247-989c7593e029","OpaqueRef:4f538c4c-a6f2-5ac5-f80c-7290a5ad4c55","OpaqueRef:e11f4509-d43f-a0ac-ef89-596c271c91e1","OpaqueRef:dc84c131-adf9-d460-4988-294d88b46924","OpaqueRef:f559123e-c887-6ab7-49cb-675b315d69d7","OpaqueRef:9de70f7b-12d1-6625-5970-894335e62431","OpaqueRef:7c2f2761-86e0-d176-8791-cccfe25d8700","OpaqueRef:e4fd9189-1c6e-8b2d-690b-8f7923b2477e","OpaqueRef:1069a4f0-17e8-cde0-bf04-ffa08d2878ea","OpaqueRef:3d8acc2e-3bf1-9245-35dd-493184d88770","OpaqueRef:c41cce49-6fcf-44c2-1c59-99d127686bff","OpaqueRef:03c65989-d970-28e1-2d72-8cf1ffb06a95","OpaqueRef:2a8ae027-e709-28ac-8de5-56adc284daa6","OpaqueRef:3eded99d-19e8-b6ca-435c-7b6f2b220b3c","OpaqueRef:c58d6c90-98ef-d44f-f4d4-47bbfebf6a28","OpaqueRef:3a08550d-abba-d9d6-bcf3-df495332dc7f","OpaqueRef:396ee7a7-5e5c-9399-d89a-427109e6ab21","OpaqueRef:cfbc0c25-0514-0a40-1c57-9e063667d33e","OpaqueRef:a6d34497-1418-7a05-f792-60f8cbd8f7c5","OpaqueRef:6fcc710b-6217-2c38-f2bf-2455728b2b0d","OpaqueRef:805b2422-565d-0957-0898-5d5a078ee501","OpaqueRef:3d022c5c-d53d-333c-706d-c175777da30c","OpaqueRef:09593fa1-1b87-1d23-8e61-bf79b93236fc","OpaqueRef:3cc87704-357e-0ea7-e918-dcae6f73fa8d","OpaqueRef:49bc2875-5acd-548c-8823-bd2c6c2322d2","OpaqueRef:ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae","OpaqueRef:57fb16f4-51fc-7798-1845-070ca26ba746","OpaqueRef:544ea348-b989-8d3e-6042-13999626c5e0","OpaqueRef:34c8cdd1-6c69-506d-2e10-1a051d5f7d60","OpaqueRef:db6de8b4-bfd5-c3a5-905f-94106bb5a2ab","OpaqueRef:c1207e93-3ffe-9166-4ff7-80b763788417","OpaqueRef:2804a382-939d-876d-c50a-dc18d199bfe8","OpaqueRef:4b182675-bbcd-8a69-3671-5803cb22b481","OpaqueRef:e01a098d-e8fc-81fa-764e-c07a342d219a","OpaqueRef:2036d54b-2179-ce69-a922-9b2d5cce6916","OpaqueRef:58e3edff-51a7-7143-020c-11e3821c18cf","OpaqueRef:283982da-ebce-2cc4-faeb-4bee137761bc","OpaqueRef:f17f15a8-882f-380a-1e75-7074e4e51e1e","OpaqueRef:d6271e34-14a8-85dd-28dd-f090b63ff588","OpaqueRef:499f5734-a8d4-4c55-83af-f0b1e2a9d67e","OpaqueRef:89e757f3-4619-1fe9-1b1b-3afdc986af84","OpaqueRef:62801603-a12a-b8ae-eb7a-0890725c7310","OpaqueRef:8673c2e3-429c-7599-35e6-e9a804892d2a","OpaqueRef:3ee06801-74e6-08cd-b237-7636668ced4f","OpaqueRef:af9bf6e8-720f-8eba-b583-5ee68d14de90","OpaqueRef:a212b9b8-aa8a-6243-180e-4270a46cec2f","OpaqueRef:a1492f6d-0469-f57f-074a-88453672a2de","OpaqueRef:e756d67d-3c2b-a489-3c3e-763748f886e4","OpaqueRef:39b6f8c8-bfbf-b629-5d92-6594e516730a","OpaqueRef:5c1423bc-7a5b-2534-ba37-295c7186dcd7","OpaqueRef:19b78c71-2cdb-8e28-6211-047d04e287dd","OpaqueRef:52a2adf9-049b-7a18-c484-87ac5d72ad97","OpaqueRef:8f70e9d9-bd3c-93e3-173a-49afe26cf566","OpaqueRef:e14060f6-a3a3-d143-5b31-560944959d13","OpaqueRef:47f88d02-ac99-2cdb-418c-c9e2e9ce7bf8","OpaqueRef:91dea557-fa82-8092-0fda-fe2a011642a3","OpaqueRef:aded9fab-67cb-95b8-83f7-4348145f15d8","OpaqueRef:13e4fa9b-f6b2-1004-c292-596ef96c91a2","OpaqueRef:097acb71-bfbc-544c-6510-425fbc5bf0c5","OpaqueRef:ba181e9c-bb3f-a159-54b8-0c408b51b702","OpaqueRef:8f7d7db9-4e24-7316-f50f-56e7e62efddc","OpaqueRef:991d65d4-eb8c-9dd0-f0cf-9cae1c91d90c","OpaqueRef:7f956af8-0126-4429-cc23-033090d5a028","OpaqueRef:edaec0ce-7f5d-2886-0101-5adf8a69a6e7","OpaqueRef:9362d5c2-3f86-50f3-d68a-2949915fab05","OpaqueRef:e638b68d-cf4a-f81d-64c9-df34168b2137","OpaqueRef:c18535f5-924a-5a11-7522-c8ba88f23eac","OpaqueRef:acf9e287-4110-4a5a-c753-7925bb43678f","OpaqueRef:d7435e71-c22c-3fdd-bbcf-33849cc039c3","OpaqueRef:3057ba41-6ab0-21bb-c4b9-2a53ded43c5a","OpaqueRef:e69c0e91-d962-f102-9200-5b00d7ff495a","OpaqueRef:784956f0-eb8f-e687-118f-5ee8fabc47dd","OpaqueRef:d0e2be89-4c37-3974-149e-c06d8358e0be","OpaqueRef:c317c9dd-000f-61e2-91f4-cafc36cc3f65","OpaqueRef:dc719910-a701-5800-fe16-18e3cb4fc00e","OpaqueRef:0dfef1da-7988-b6a2-0752-20b8dfcad6b5","OpaqueRef:a7f5635e-754b-2c47-0182-b2cd6eaa6a4c","OpaqueRef:21c41bf0-8c5e-b6de-5dc7-f71cb751a430","OpaqueRef:37548ef6-abc2-9f49-7fd5-efe65a5b5448","OpaqueRef:5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044","OpaqueRef:6682964a-92f7-ece2-30b1-583be0f69b15","OpaqueRef:eb0f1687-b443-2873-e3c5-3464197a2a50","OpaqueRef:ca439f57-3fa8-ee93-f2a5-5d4f72cbb907","OpaqueRef:28069750-7807-2fa6-9bc2-bae7456f5de9","OpaqueRef:a988b203-87ad-2774-daff-abb02c8b8242","OpaqueRef:3a933cb7-62fd-7929-3052-b8f7caffc9c1","OpaqueRef:d68b60f7-6618-0e76-a3b7-226f3c30b789","OpaqueRef:450af311-5669-e4c7-6ca3-b3350172eafb","OpaqueRef:9fb5a1d6-e53b-24af-bb7c-49a942f0bc65","OpaqueRef:ad6b4de5-bb53-c27c-f34a-033542cbcf61","OpaqueRef:cf8f0a82-e845-5f00-68b3-d0905d31e8be","OpaqueRef:fc7cd54b-2fde-4fe7-4caa-e152930fed06","OpaqueRef:d619c5a5-074a-a015-1c1d-a0a0e62bfaa5","OpaqueRef:84d71586-5ce8-2364-c74b-0017c93b82b2","OpaqueRef:0e28a706-8960-58a7-4f9d-c3b0eea64a0a","OpaqueRef:e3637139-7f57-56b3-b8e8-4fd736f11588","OpaqueRef:164a66c7-e0b0-7fd7-ccd3-d13042353c78","OpaqueRef:88fc5a8b-e5f3-612f-7a32-e5a651abd04b","OpaqueRef:0ed8495c-b53e-7951-d041-14df9605e6f8","OpaqueRef:88f8cb5b-b92e-0ab4-307d-2ed4ea447475","OpaqueRef:8d328936-9d02-d5de-239c-a5ac7683fe55","OpaqueRef:832c3695-97bc-0149-a67b-72168f3399ad","OpaqueRef:4ac0e45c-dfd2-201f-80ea-ebfd8d71427b","OpaqueRef:efb7cbd4-61f4-0486-ddf7-7b2d7b75eaf0","OpaqueRef:0e80dc41-4ea3-d605-ee1c-80287a3bac23","OpaqueRef:7a68af31-9342-776f-91f6-ed3e1fe3b25e","OpaqueRef:4c00e8eb-9e93-8e7c-ae07-284d760310fa","OpaqueRef:e7d108ee-2082-98c2-acb6-5884f39f3056","OpaqueRef:62084664-4e15-5ca5-99eb-00007ed70717","OpaqueRef:f2df7036-f418-a415-ddca-d31ba6ff611e","OpaqueRef:4b368ad8-3eec-31b3-5fb0-d1070507cfd0","OpaqueRef:b7db64ab-97ce-4dfb-45d7-f505756fe4a8","OpaqueRef:25d4aaa3-582d-7e6e-eb43-8fba9c42568c","OpaqueRef:ff776240-dbd0-9ef8-f34f-42c85cf01b3a","OpaqueRef:559b520f-dcef-e6b3-6a21-3a74d84d3fa8","OpaqueRef:1a37ccfd-f500-bd50-bb25-f20411bfbb35","OpaqueRef:086121bb-2bba-06e9-bab2-6b7414b0e4eb","OpaqueRef:bb1cdcf0-b311-780a-0ef3-f513d856d37c","OpaqueRef:46e0c783-d1a0-5ef3-18ff-b10089c66fce","OpaqueRef:6d7ab29d-bf4b-8fb0-5b6f-d988b1e17a60","OpaqueRef:051ea96b-6608-7758-cc1a-70c7e474ad7f","OpaqueRef:8e7d8b4d-8ffb-c803-5d00-49a3d08d43fc","OpaqueRef:2fd85a90-74c9-15e6-d4f7-e59c7f584ac4","OpaqueRef:54cb0e64-7459-04bb-621b-4f16f42ba21f","OpaqueRef:9e2e9082-8361-adb3-1e6b-51178368e9a5","OpaqueRef:f1ab04b2-6571-fff1-66c0-720ca6c50bfe","OpaqueRef:616109ba-d73f-ad1f-a4ac-4a1454b7b742","OpaqueRef:8295c108-ca0f-bc2e-1d77-d580d9dcbdff","OpaqueRef:65e61767-fa64-53ff-0056-6491eaec7d1c","OpaqueRef:b2dc1fd3-b84c-d045-efe6-174954f53ad0","OpaqueRef:a534c226-3cce-06b6-3a28-cbf339c0e385","OpaqueRef:a576f048-226e-b605-b15d-f388fd903210","OpaqueRef:676b455a-f9eb-78e3-a1ef-a1ea437f6110","OpaqueRef:3d4411cf-b855-6140-b1cd-1c6b7a0ebedd","OpaqueRef:a0184446-8631-4833-3651-61ca4293ca60","OpaqueRef:b277f808-66e4-fd82-2300-bfae51e59679","OpaqueRef:babc2b36-7a11-3b3d-03da-fc3130f49a35","OpaqueRef:2a3d6942-c2df-0472-5241-52530708b8c7","OpaqueRef:7e23cac0-90ad-45ba-9a62-c7b6a6e4002c","OpaqueRef:b8f9b23f-65b1-75c0-289b-e6e2872ee81d","OpaqueRef:2adc8291-5288-6526-87a0-0b15ec4ca4fa","OpaqueRef:6fc9e87d-86a3-2cf4-dd26-017c20571a05","OpaqueRef:b0d0708d-79a0-7f33-2b39-4e2a59000bbf","OpaqueRef:4b284b33-faf7-ba98-7e68-6a53191fdb97","OpaqueRef:01844316-a78d-e6f9-a7b7-53a939235f5d","OpaqueRef:b1d61197-b0bf-cb30-2120-627c956a97f7","OpaqueRef:74ef5702-8a42-a7a6-8951-a28ae3b64197","OpaqueRef:ab2230c7-8d4b-357d-6a26-62f7c9b0bb27","OpaqueRef:ce3646e1-704b-6b7e-f468-45a009bec12d","OpaqueRef:c911cfca-5100-8446-b631-2d6f3861350c","OpaqueRef:f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4","OpaqueRef:883d4710-6475-244f-cce7-d17282265fdc","OpaqueRef:56a2f957-6b1b-7d8d-00f6-931d4574f63b","OpaqueRef:bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f","OpaqueRef:ba6f9682-ea22-caf0-ea6a-cfad6774390d","OpaqueRef:04ac5338-b19b-6833-ed3c-b992d6ef8328","OpaqueRef:917258fe-6427-e960-98e8-9f3bbd88bd22","OpaqueRef:2de23583-b3f1-6e39-4bd9-4c7bc7afc977","OpaqueRef:46c7e8d5-56f3-060f-2995-2d969d216c2b","OpaqueRef:06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5","OpaqueRef:c2bc934e-8ece-de2e-3288-7ccbab1e257d","OpaqueRef:e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a","OpaqueRef:3b5deb71-ec32-2485-4913-089fa04f1ace","OpaqueRef:c7b868fb-53dd-4ff6-9b83-fe096e910d82","OpaqueRef:3516a06e-5a67-7f1f-4c83-40b3d7e914f0","OpaqueRef:439dce99-b067-9c88-7a0a-06e581f8f502","OpaqueRef:8e7a8bd9-9ac6-a612-477a-12c33c6af2d3","OpaqueRef:2cc96f79-52aa-dafc-494e-5d04eb63b66e","OpaqueRef:2966c4db-3b8e-7257-734f-0969cf20819d","OpaqueRef:f2ec9f37-10d9-7d1b-510a-4415578358ec","OpaqueRef:56fb3052-8b86-22ad-c7fc-b2526f97e6b7","OpaqueRef:312ca834-68b2-6c0c-7608-9fa37ab92a80","OpaqueRef:de6644f5-642f-de4c-0a6c-643305b2d412","OpaqueRef:1e09548b-2543-cf4f-f3c4-5ccf24e7f34a","OpaqueRef:532b0c67-7dc7-8ea3-2e90-ed2db7b2a1db","OpaqueRef:b36dd591-9707-22a9-dd2f-f4ace0f16c2f","OpaqueRef:73dcfb11-02cd-8963-408b-dad8c5e273f9","OpaqueRef:4422e4c7-9256-2554-f5cd-20e747e332de","OpaqueRef:18dad7b9-c57e-c98d-7d17-f0bf1d7e06ab","OpaqueRef:b843bef9-a511-6d24-6f3c-35213ab63e72","OpaqueRef:99348363-3c41-3555-2ea6-69f9286ab01f","OpaqueRef:2a640dcd-ecb7-7c13-f614-5ece445d6af6","OpaqueRef:67ee9e01-bacd-05d3-a6f6-d7e36b2e3615","OpaqueRef:0b3def91-9eba-d648-87f7-fd46891784ee","OpaqueRef:3a5fc160-ae59-bc77-0753-e356a3ad9b90","OpaqueRef:e5c75e3c-d11e-b898-e9e7-330a9199bf1f","OpaqueRef:38ef0f15-9dd4-29bd-cee4-b90a4f40b781","OpaqueRef:6d1d191d-e4b5-6ea6-9fa1-77be26dac4b6","OpaqueRef:412f975b-5a60-92d0-a171-2bedf499c0f5","OpaqueRef:4e5603db-37bc-eb71-1024-e2f12969924c","OpaqueRef:2a010f2e-db5a-5674-cd2c-86c314edff3a","OpaqueRef:c55b00c9-0dd4-cfa7-8c15-9f45566790eb","OpaqueRef:1d31bdb6-108a-c58f-726e-698a3ae8a4c2","OpaqueRef:229e72e3-bb39-e68e-870a-66da28febf25","OpaqueRef:a9e18770-38e2-e1a7-8ae0-f084cb86b223","OpaqueRef:7488f812-0cd8-7253-6fee-f339b217611a","OpaqueRef:7105e48b-21af-8085-53ef-cbba8e982ffa","OpaqueRef:bc9320f4-99a1-bb52-5f0a-53b712382e92","OpaqueRef:ca85f1e0-c38c-287e-8327-c07136a32bbd","OpaqueRef:d4103e70-a294-550e-2c8f-8cc136aaad6e","OpaqueRef:dc80d07c-da36-8b15-91a4-92ca16f288bb","OpaqueRef:51051d7b-371a-7f10-d045-a050f70f2474","OpaqueRef:4e914b35-ddeb-12b2-31fd-e2fbcbec010d","OpaqueRef:588d746c-9967-8e54-df7e-a825bc64f73a","OpaqueRef:e9a7fba1-deec-3478-2098-26b97828c750","OpaqueRef:93dea749-bb50-7546-5ecb-90cfbf26165f","OpaqueRef:b37bf5ec-05a4-e2bb-1586-d973d208a2f8","OpaqueRef:9d51a9e7-b720-b88e-5240-256b52701685","OpaqueRef:a00ac9c0-8960-1e84-c638-c9858dfa4101","OpaqueRef:0c82bef6-ba72-0bee-b924-84feb84b2e77","OpaqueRef:6753d0e3-8e17-9f9d-cb5f-9642c2b7685d","OpaqueRef:d70b794c-05dc-77a5-b720-51a905de3f2b","OpaqueRef:0462f07f-cd50-abd0-7965-0ec55f5a126b","OpaqueRef:a28dd0cb-fcd5-33bd-7657-278e5f653471","OpaqueRef:35767a4f-af9a-af62-5f51-ed250f684d25","OpaqueRef:2605b766-9cb9-cdb1-53e6-2431e711af44","OpaqueRef:f5b86d13-b503-2c7a-83cc-b54896afb752","OpaqueRef:266d1cf3-ea34-44ba-fc97-cf4cd876d7c8","OpaqueRef:2cdb0f4e-685a-814d-03e5-19c4fbe5aa64","OpaqueRef:a2f2b2b8-188f-f022-69bf-fa443d89bb58","OpaqueRef:a4c9dc80-0070-0067-a1d3-339b5081adc0","OpaqueRef:f6184e4a-0be4-97e7-6db6-bced99fcceff","OpaqueRef:771f7157-33cd-a8e1-f5a7-ae23af63c750","OpaqueRef:7f545d78-e772-030f-2e95-7d3b998d3000","OpaqueRef:b99da77a-522d-4bff-9013-ae981fceda83","OpaqueRef:0a01091f-7913-54d3-94b5-3ef26f90b0f9","OpaqueRef:dfc8a1f1-60c9-373b-c6a3-56c0712754a7","OpaqueRef:e3e174f6-5c33-6385-bd9b-09213a73e701","OpaqueRef:f1fc3e4c-3f63-876c-f667-2c06a3321e7c","OpaqueRef:3230d646-65ff-59d1-0400-5f58231c0664","OpaqueRef:68130225-5eb6-b36c-43f5-c81acaba8b68","OpaqueRef:9ad29a74-1eec-8937-697a-ba3679e4f48d","OpaqueRef:3fa0a161-a6ab-4adc-3749-2aab29e2b445","OpaqueRef:1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e","OpaqueRef:924d34e6-51df-0ef3-fdd7-065a11af80c4","OpaqueRef:ccc6e989-a50d-3530-743f-d13e7f05e5dd","OpaqueRef:bbdc09c5-8729-4aae-9945-66b292cf2aa1","OpaqueRef:62c6badc-ea63-3832-3641-cd0eccca0304","OpaqueRef:18c1913b-2356-df02-11ce-ffd2da0e4170","OpaqueRef:e522fa0c-7c50-cc59-c88d-0dedc9aac2aa","OpaqueRef:a5bca0b7-88eb-7892-b1ec-e328146be11a","OpaqueRef:57003b7e-6b62-44ed-9efa-d02a2c73946b","OpaqueRef:58fd2438-7368-a4de-3b67-e5ad53708171","OpaqueRef:baf1360e-2dc9-be3d-08bf-252994e78ccd","OpaqueRef:8618ece2-3298-2490-19dc-2e951f388f1d","OpaqueRef:acfb9201-52d6-3881-04f4-83ae8376300e","OpaqueRef:fa7a9290-f86a-2185-3c2e-9a4c5ad746ae","OpaqueRef:092b2548-6da4-7838-9b3d-af0860032580","OpaqueRef:4cfbb76c-adc2-c543-66fc-b1239cc2674d","OpaqueRef:a8137b60-e684-3a89-3c7d-70365d9f8465","OpaqueRef:edd8481c-3712-064c-e444-2a1f20a31aeb","OpaqueRef:566ee717-dd27-c672-e4ea-2f0796acd117","OpaqueRef:4df8d39a-3fda-a201-f792-c727dd2ffa60","OpaqueRef:0f5f27b8-5098-237f-e2b5-14c9512fb0d6","OpaqueRef:360c10c1-5edb-2dba-9e8e-f1440e9a948c","OpaqueRef:4950f5c0-e772-3c03-61a0-6b00f291448d","OpaqueRef:ad699ad2-4125-fa0c-2869-8b6640360731","OpaqueRef:fa8993fb-524f-eb9a-641d-06b2099ecb82","OpaqueRef:a973885d-511e-de2a-00ef-18ed6acf3021","OpaqueRef:73e1bedc-0afc-64a1-ac4c-a58f118bbdc6","OpaqueRef:efb93f2e-bf72-db7b-d36a-1be03c962cec","OpaqueRef:0ec88acf-cbb0-d4d3-7c8b-f5f320e6f0ec","OpaqueRef:e8872a7a-d9f2-2a9c-1e4e-ed2e94612f6b","OpaqueRef:19dd9241-f613-057e-d933-dfc254e20a6b","OpaqueRef:5312dde5-afa4-fafe-a3a4-a9729b47b80b","OpaqueRef:ad2b02d4-5928-4232-df0e-a7fdebd8fb62","OpaqueRef:f2370df8-242f-0ca6-ec92-868200d68c34","OpaqueRef:eaadf2fc-0fa1-892f-b20c-e3b8ac502e6b","OpaqueRef:ed243ad4-497a-52e3-d46b-945f2e4156f3","OpaqueRef:4bb206e0-df39-3bb0-2402-e4d584e6861d","OpaqueRef:ef6fd636-89c1-1e1f-157f-284e8a450324","OpaqueRef:5ff8b980-e213-e1f0-dbda-b5abf2bbe72f","OpaqueRef:c7734155-0a75-ac54-6f7c-74a8da933455","OpaqueRef:eadc7ba0-7efe-5e4c-7b78-482519be7522","OpaqueRef:25927722-f11f-2805-9006-8fa441b22745","OpaqueRef:804810ef-bdde-04af-addf-31ac6e8eb8ff","OpaqueRef:f8d1620b-4d3b-ed60-af3d-6a13a59d65e4","OpaqueRef:325bbd68-d003-fcb2-bfa5-3745d5c7d4ef","OpaqueRef:f5b632a4-7a1a-576c-e9cc-0ba84cf1071b","OpaqueRef:8b3775f3-de8a-7191-05be-d652c36aa494","OpaqueRef:fae90cea-ef53-bc8b-93d3-c0c48384feff","OpaqueRef:6e3cc91d-fe57-6857-c385-343d09c1a113","OpaqueRef:710cfeb3-2a8d-27ed-c208-78f2db5f79a8","OpaqueRef:0552455f-5aa0-3217-1818-9c0729fe8d6f","OpaqueRef:06c9a83e-f5d7-801c-cef9-f564eada350a","OpaqueRef:3acba506-ce1a-b39b-b637-3731b50880e9","OpaqueRef:8570df6d-9f81-8bc6-00ff-4c6c1f84def6","OpaqueRef:4894cd8b-7d71-407e-2852-1b7f4aa166cf","OpaqueRef:311d925a-6070-271d-a724-0948552a654f","OpaqueRef:44d764dd-95db-e4d9-4cf7-1250f3ca601d","OpaqueRef:937b2b79-813a-a286-cbeb-da09e3cf4c90","OpaqueRef:44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a","OpaqueRef:ab3a2fc2-a70b-9122-8c6c-a51f7c11f438","OpaqueRef:18c32fa8-b18f-6a28-5b40-12f9077d7661","OpaqueRef:92967fef-88ab-15e4-f16c-9f042b3191f4","OpaqueRef:a3f5b9a0-e36f-41d8-65dc-8f7bd095293b","OpaqueRef:9986f58f-773c-c701-6b97-7e99b0135124","OpaqueRef:d450902b-de9f-7867-c98c-f912e6a80cce","OpaqueRef:7936813a-24d4-e749-f89a-dec7286a0b99","OpaqueRef:81239256-3acb-c6e7-b689-9eb4e54c9956","OpaqueRef:745095db-fdd8-7025-f9b3-839b0fa846f9","OpaqueRef:7187f8da-4c69-cc67-9718-1f98b825c1ea","OpaqueRef:601664bc-64ea-312f-6bc1-543ca1a0177c","OpaqueRef:729d8740-7096-6a5c-49dc-6c4cec96500f","OpaqueRef:d4ab22c9-f134-2607-284a-56381333719b","OpaqueRef:2a06d13d-ff22-2dc7-98a6-a97c7c723481","OpaqueRef:a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44","OpaqueRef:a14d9994-ac84-07cd-e0c3-621d7c92f0aa","OpaqueRef:56bc2594-ff11-2fa7-8f46-18178bd1010e","OpaqueRef:396bfd0b-b63b-449b-75e0-f4998ed9ea1f","OpaqueRef:7a90825c-43d6-122c-0805-408ff98a5064","OpaqueRef:af48eae9-9c88-9a3d-e57a-46250c33abf8","OpaqueRef:174af546-476b-1579-44ef-07346dbbe4b1","OpaqueRef:2aa40daa-f640-4198-a8b2-20fdfd44947f","OpaqueRef:7555a731-bf5e-2494-cf68-90a0d7594b06","OpaqueRef:c3ae01b1-a370-4ec3-d91e-4d8533a89f86","OpaqueRef:edac34a6-33d6-77bb-28f4-420479c713a2","OpaqueRef:4210bb3f-296a-873d-f592-9a9cf531b0b2","OpaqueRef:bcd53d79-34a2-71df-29e1-c7e72dfca15e","OpaqueRef:7762becd-462e-6753-2b38-d70dc62e2c29","OpaqueRef:3f2d95ef-f35a-fb7f-ac83-1e31d28eb587","OpaqueRef:79e264ba-b809-161d-44cf-f628b44dea1a","OpaqueRef:2d6b6f99-d4ff-f561-6f39-1a2361b296b5","OpaqueRef:57b4a7f4-2b31-e7dc-3698-cfc7ab53d6ec","OpaqueRef:b6e74e20-a86a-c58b-67e6-8d481d0309cc","OpaqueRef:0d2542ab-7612-5824-4c0b-a77676fe1df9","OpaqueRef:eb56bf07-27a0-6d21-b864-90d65355a7c6","OpaqueRef:a9077c51-15e4-6c48-46d6-b37841c7edf4","OpaqueRef:7b14057e-435b-da4a-f335-5710072124bb","OpaqueRef:a35e33f5-26cf-7f6f-7bee-2e69c34448f0","OpaqueRef:d5c12717-98ae-ea62-287b-ae5de38e2c4b","OpaqueRef:b7b71954-9351-702b-765d-1e3757e2da15","OpaqueRef:9b1c0f58-1625-a13d-413a-5260b57607ca","OpaqueRef:ad0c4088-5db2-3676-22ca-b679662173da","OpaqueRef:d83d3500-e310-848d-ba03-1601caced032","OpaqueRef:fe5d5a1a-b9ae-a0f4-2d61-50416f161d60","OpaqueRef:a95d21fa-7e04-1468-b0dc-27d81e39c09c","OpaqueRef:37f9a250-fd67-56db-e2c1-7f7c7abfd9fb","OpaqueRef:a5ac4a15-20df-40aa-1d01-c668e8746d7b","OpaqueRef:93340db9-eacc-0e12-9151-854745d49cf7","OpaqueRef:9dd43118-a078-1317-8a87-83ebed088133","OpaqueRef:63b9ae45-0e59-c1e6-d3dd-f596860071a2","OpaqueRef:67af93c7-dfb9-98ce-ccbf-80fb7e828e27","OpaqueRef:23af0178-71be-1c09-5f09-4eeb59279dec","OpaqueRef:738acc9f-a221-a9c7-c008-4f324a609677","OpaqueRef:6467bf45-4441-2fb7-299d-da6dc598310b","OpaqueRef:5cd9ce80-b26e-54b1-0dfb-07431f9fde11","OpaqueRef:ef373d6d-ccef-defc-69de-d76a06ec27ff","OpaqueRef:dd9035db-7349-697a-84aa-6aeef6601c43","OpaqueRef:a1f5ef8e-8116-2ead-ce75-4ff9cdeb6fbe","OpaqueRef:c614ec0d-cd31-33ba-21b3-43a6c498d0fc","OpaqueRef:34e576e5-27b1-46b3-bf30-25a663835fec","OpaqueRef:0620c7fe-5acd-626f-cd9d-79997b854a2d","OpaqueRef:f6607652-9394-52ba-ced3-f360b1257e6f","OpaqueRef:5d76223e-2db4-b433-f8c2-cb2a5d864efa","OpaqueRef:9b8f4aa3-bfc2-83c8-3667-cd99d8a752ef","OpaqueRef:071234dc-bb28-960b-bb7c-ee4ece319f5a","OpaqueRef:27378730-81dd-d327-639d-17495c264bc0","OpaqueRef:f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103","OpaqueRef:4d21470f-106f-4e87-5109-1054f40a15e1","OpaqueRef:8cbe8380-7d8b-e296-35f5-7941ad540728","OpaqueRef:26a2c50f-a17d-dea1-7046-e09d4e4beb2d","OpaqueRef:95d99f45-12d3-b0d4-5b95-3cf4e910c7c1","OpaqueRef:42d39347-68df-86c9-065c-6f95e1a28c1c","OpaqueRef:a92bae06-cfdf-6655-38c6-2c24b0da778d","OpaqueRef:874f163d-dd0a-fa0f-0df5-166597eff5bc","OpaqueRef:ee185dea-ea4d-e49e-ad96-4072c0a84f58","OpaqueRef:123a5e0e-5e9c-ba9d-0b27-c2c84732402e","OpaqueRef:52fd6dc6-5ca6-9fa3-a47e-5650412665ab","OpaqueRef:a954a18e-5251-f3c7-1bcc-0a7e3e532d13","OpaqueRef:b2bf107a-c001-a3f5-0f11-d9b414b636e9","OpaqueRef:d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d","OpaqueRef:cfaaa17f-391d-2412-ccd2-afab25ccab6d","OpaqueRef:bd37900a-e6b0-90df-dabf-871311560070","OpaqueRef:d237f558-5bcd-610e-0028-4fe71d0ac595","OpaqueRef:703ca7dc-8dcc-6df0-2473-7337caa1c17b","OpaqueRef:bac565df-939b-c536-dfc4-35ea64950ad1","OpaqueRef:d19eb620-7260-c930-6729-682529ab1d12","OpaqueRef:e03eac42-56e7-135f-0afb-e5987f110687","OpaqueRef:342236c6-8d38-20f7-1e06-1a44e75513b0","OpaqueRef:368457f6-8b86-9492-2566-cfbf72c8598d","OpaqueRef:009b40cc-5ac3-4e74-251b-439ae33a1237","OpaqueRef:1ee62327-b580-693a-9635-78d27050c1b6","OpaqueRef:657ed104-a6cf-c0f5-1813-48f0bb17da4e","OpaqueRef:01a743e5-a3b5-f318-7228-4ce8fbcc6662","OpaqueRef:019dc5fb-c3ad-90db-7e97-160d3fcf1970","OpaqueRef:70276941-c1fc-66ff-97b9-6a2f0e4417c2","OpaqueRef:fe6b159e-02e4-9220-217f-f7530ac32810","OpaqueRef:765c29b0-1ca4-48cd-1222-4eeb6655a7d7","OpaqueRef:36d74e5e-a510-68e7-45b1-ad0a7c5f47c1","OpaqueRef:6d0a3227-0550-f146-7aac-34259c56d99e","OpaqueRef:86989975-8b09-5f82-f068-64f59f226978","OpaqueRef:dfa26a90-9ce7-1147-7ddb-d79dd9d9c105","OpaqueRef:e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd","OpaqueRef:9c4cc775-613a-fa97-0912-aa44311671b9","OpaqueRef:ebb0b010-c619-1fcf-2519-a386d57161bf","OpaqueRef:96a4dd40-ee88-1987-3286-55c08bf66316","OpaqueRef:de4a5cb5-c8d9-3319-92bb-a0a0f560067e","OpaqueRef:9c0443d4-538d-c2ef-af03-55f9e033f6b1","OpaqueRef:0e630687-91e7-fb14-32b8-d7813d4dd5ac","OpaqueRef:024ec9db-e7f1-de4f-23be-6c3e46f8a797","OpaqueRef:106a8006-8e4d-000a-e85e-5077503d891d","OpaqueRef:4eb027f0-0349-99d5-83ee-4d00063e9a62","OpaqueRef:51a0170c-4df8-88fb-62ad-a85085484604","OpaqueRef:dd56ce4e-8a5f-0776-a0ba-682b1dda3b84","OpaqueRef:795faa64-e21d-c19b-a175-7c28d7af1935","OpaqueRef:eba43944-c9fd-a3ca-d20c-d39c09923eeb","OpaqueRef:ea191445-996a-32e0-33dc-2819c43657a2","OpaqueRef:5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a","OpaqueRef:0b1b29bc-15ee-ad07-a49e-05b26da793fd","OpaqueRef:df390945-b067-324c-a4e7-93d944ae540a","OpaqueRef:eb7f2515-ab28-d9d3-17eb-285a28545189","OpaqueRef:621bc530-1dd3-dea9-a82e-498f86b5664a","OpaqueRef:2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b","OpaqueRef:206c900b-40cd-e97c-ef4d-1f20a3d67e1e","OpaqueRef:97f7185a-3f7e-35b3-6beb-23f6864d0ee9","OpaqueRef:30371c5e-cea9-fcfc-8f29-290889088518","OpaqueRef:02848936-8270-e502-2b53-971110e9f649","OpaqueRef:b86716ce-dbef-07b5-ebbe-34563541ef98","OpaqueRef:9366d110-4c7a-e528-014c-8cfd1bc735bc","OpaqueRef:2d30096c-51e6-487a-b95f-5d3b49e0922d","OpaqueRef:29ccccc0-78ea-f639-1829-f5579b6cc3fb","OpaqueRef:6979048a-de08-4e61-feb6-b5ad950b3b88","OpaqueRef:17c2c3d4-6525-49ca-28c3-efc752410e1c","OpaqueRef:8a499ea6-d0bc-3218-e271-c5507d8f8a96","OpaqueRef:1ec637f9-4157-5b26-dabb-31f3331c2959","OpaqueRef:b57b8c50-f2af-943e-a514-8340681aaaeb","OpaqueRef:c99755dd-030f-7f04-48b2-eadf25ecd92d","OpaqueRef:dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f","OpaqueRef:0e8a9f8c-2c46-818a-9854-04bb6b36a68e","OpaqueRef:6915b3af-9d93-fe55-1e79-9859a603c794","OpaqueRef:25f8fc67-b562-e946-71e8-30b169bf70b7","OpaqueRef:d69e42f6-4afe-4a38-1794-1a7c062123a3","OpaqueRef:78840af4-8196-e8dc-af0d-08b1a2218dad","OpaqueRef:8fb7479c-f838-e29b-4693-651f31819f9f","OpaqueRef:5a960d88-c30e-3aaf-f79c-e58803f4e544","OpaqueRef:3561ecde-dba0-fb56-62b0-1a6101833aca","OpaqueRef:c59f2b3d-5a13-6c04-0021-0cdbec0121f8","OpaqueRef:114b6761-fa8c-3aaf-3bc3-757d86de8918","OpaqueRef:dc25c20a-f553-ff0d-b49c-ddb96d8e2e61","OpaqueRef:795b843c-c4cd-3690-a224-e36e687ef07c","OpaqueRef:43572bd0-288c-6290-e52d-9f12253f662e","OpaqueRef:e73ccdb9-0003-bcaa-8576-fd587f6abd36","OpaqueRef:4a4afbc3-0b2c-f5f2-6967-6afb51cf903e","OpaqueRef:f52942a8-5ac5-2c56-c42a-79d9c3ec2c82","OpaqueRef:6113a2d6-4c9c-48a9-dc31-1c7b590e3cde","OpaqueRef:adec2482-2774-2665-2682-d9ce334ff4a1","OpaqueRef:9412d249-3172-24d8-cf7e-9622564daaf9","OpaqueRef:87005ee6-c593-016c-5cb6-63ced4df556c","OpaqueRef:5c423f17-499e-76f6-a0a4-a8e96a9a5841","OpaqueRef:e701b23d-c37b-d583-890b-48657c03f5ad","OpaqueRef:90c6fb36-5d02-460e-f78c-c02828defb95","OpaqueRef:3fdd414e-97c6-a7a2-c297-871f5f05ee3d","OpaqueRef:8a92fce7-31af-97f1-33ba-74802d8522c3","OpaqueRef:3c291172-5a99-70dc-e6d1-d3637fe01b96","OpaqueRef:69ee95df-aa85-fa8f-a8fe-f906098d50fa","OpaqueRef:72145853-81ce-a12c-1606-14ff7432a7b6","OpaqueRef:4b96faeb-b163-23ce-bfb1-65338654423f","OpaqueRef:46eb0ae8-1c31-3d27-55a0-3e001e6a8cb0","OpaqueRef:c34920a2-588f-0628-3f8b-b3c5bab3ac4f","OpaqueRef:1d1d659f-b7df-54db-8b2f-a3fd62a67933","OpaqueRef:a00e1125-aa6c-2a9d-2cef-3000e5357ced","OpaqueRef:973b22d8-c0b0-834c-ff70-30cdd424d1d8","OpaqueRef:207a7572-567a-8900-16f4-41f9c102bdeb","OpaqueRef:50dc8d5b-e46e-8903-e94d-bffbbf1bccc1","OpaqueRef:3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d","OpaqueRef:1388c828-c07f-9391-a1fb-9cd0653117fa","OpaqueRef:49010e45-7adc-7912-16a1-45bbcd359177","OpaqueRef:d64e8bad-1a24-1fd3-93a5-b0252099f97f","OpaqueRef:3b10ba6c-e973-5bf2-5bcc-d429490f88cc","OpaqueRef:c03fd8c1-e01f-2726-7c57-d9e8066f042f","OpaqueRef:8aa70081-ff29-9795-004d-e48584816546","OpaqueRef:0dec93de-3a81-1b68-64b1-5a9fdfa5848c","OpaqueRef:bc40708d-314f-472f-4f71-da37b0f5440e","OpaqueRef:6c7256c1-dd50-fa5b-8dc2-4fe5858d1c08","OpaqueRef:98773f37-621e-5c05-3c3a-f7f7f034a76e","OpaqueRef:7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c","OpaqueRef:43c79c0a-2a5c-0e0a-b10b-5c0847fd888c","OpaqueRef:bf225b3b-1e37-86dd-5922-a04df826dba6","OpaqueRef:8274ff2e-c513-43d6-2a55-ce0057861430","OpaqueRef:0bdee192-3fa7-09af-d3ee-12cd06ebb91b","OpaqueRef:4b3fbad1-a1b2-ccc9-813c-9d6151a9d974","OpaqueRef:d6219686-f85d-245e-c292-f2dab9cf156f","OpaqueRef:cbb0830e-78d6-6db4-b10e-cd1acbffcfd8","OpaqueRef:137475bc-66cc-23b5-4a93-1101da98b268","OpaqueRef:435947cd-5662-5e05-3da1-cb3cb6937448","OpaqueRef:1411712a-41d3-d353-5e92-b977076e1b05","OpaqueRef:2c6424c8-06c4-34fa-1ef3-6f04e5805e1c","OpaqueRef:7588002d-2ebc-c944-8f10-c5c452efb97a","OpaqueRef:6e525c86-0bff-99e3-93b1-9130c8b68496","OpaqueRef:3d046d7f-a1de-59c3-e371-d58126e521d5","OpaqueRef:e0be1112-51fd-9ebb-5b03-cf2140a2ebe7","OpaqueRef:36bca930-2c10-ece7-d692-5fd29aca70a6","OpaqueRef:899a5718-836e-bb6f-7f8d-2ada2bbc96dc","OpaqueRef:dd24c4b3-62ab-3d64-f1c9-3c36df94d604","OpaqueRef:26051e27-35b3-e931-521f-cb8806ecf4b6","OpaqueRef:30f950cd-ded7-0c2c-e58c-d782eda3d752","OpaqueRef:ed901fb0-1968-23c6-ec49-bdbda2035014","OpaqueRef:b15fecc5-3baa-5969-d2f3-b883ec5f1bde","OpaqueRef:e83a8360-7f59-c3b8-6799-39fa6509772a","OpaqueRef:47707758-d7e2-88d8-20bd-6f063c40bd18","OpaqueRef:b18bd364-663f-1421-4321-d11d27c5b2c5","OpaqueRef:2c9fc908-4e38-a942-5bb7-8fc7e3202324","OpaqueRef:e362b679-36e0-70bc-be0c-1ca74c94dcba","OpaqueRef:34c9c779-9cca-96ea-40b5-252be5f41bc2","OpaqueRef:48ac5191-399a-1660-42c9-754b302eeb84","OpaqueRef:421958db-0318-8810-3244-01f0f855895a","OpaqueRef:154e0584-ee8b-74ae-4e57-b02afd66ba13","OpaqueRef:1a4cfda0-0d18-b966-86c4-b80e7a832211","OpaqueRef:faf17e53-86af-aa3b-93e7-46a7f130d178","OpaqueRef:53a516b7-ac7f-519f-b9e4-b9f79a6a1f58","OpaqueRef:c6e718ea-7554-1841-ffe9-48304dc85276","OpaqueRef:e6e276f5-85c3-01a4-43f6-c7699f4cf723","OpaqueRef:5607864d-8f51-59c6-74a3-cbe8fdf91e19","OpaqueRef:67a5efa1-04cf-098a-f236-30b058cd2f59","OpaqueRef:a1fb1090-0bca-17c8-bbc5-ed82e230cdf0","OpaqueRef:54b50900-4c44-f1b6-edc4-4b9d80e2dc48","OpaqueRef:0002e248-e4da-6542-fb0f-85214c20b145","OpaqueRef:8c6ddd51-dfd3-4063-a98f-240264641fa2","OpaqueRef:ffd180ac-0266-b6fd-a6f4-720dd314aa73","OpaqueRef:a682ee3c-c131-0965-a720-4b4733ac7960","OpaqueRef:ba0eb8b7-b7db-c614-7d4a-8e1c4308ed2c","OpaqueRef:c964a69f-d541-cd37-596d-97ded3a917f4","OpaqueRef:b79d6b7a-58d7-384a-1556-9c7f86c4469a","OpaqueRef:d918de41-726c-7c74-75bc-66122a9c9d78","OpaqueRef:9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835","OpaqueRef:42c1215c-fcd0-e848-88a7-8e9ac7cb001d","OpaqueRef:28f7a03f-0ee3-383d-dcd2-ed2a466f62c0","OpaqueRef:a2c22e5a-4523-2a90-65ed-7501f6d08657","OpaqueRef:93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9","OpaqueRef:ec6018b6-36d9-6815-1de8-7d6fc7e9e136","OpaqueRef:37215355-cf4c-bacb-1e33-1f027fb8c81e","OpaqueRef:8a1a13f2-8137-b095-84f5-ae67e3c3ffff","OpaqueRef:ae118c9d-8c3f-46ad-733e-39af8a3fe63f","OpaqueRef:21882b95-87bc-8ee8-cc2e-653037903827","OpaqueRef:9e6aaac3-334a-9504-3583-2a2f1ecba5b3","OpaqueRef:02aea1ba-d9b9-c004-768e-9b298561737c","OpaqueRef:0e96087f-e831-7f48-65e2-8b335a9aade1","OpaqueRef:001314d7-35e3-9c21-f0b9-083a1775b4d9","OpaqueRef:66dd3e88-4680-311b-0df8-ce833d998744","OpaqueRef:96fc2d1c-647c-8b14-e1f8-7b393b923f13","OpaqueRef:b9415fe6-a3a1-5cb8-ca85-df89c1304e8d","OpaqueRef:9bcaf150-0b82-265c-2206-1b5f2d672608","OpaqueRef:bb55d298-b018-8a07-a849-bdea9692a88c","OpaqueRef:5e022752-8add-d1bf-4ac1-9c859fd9103e","OpaqueRef:1a7f9365-cd5c-541d-183a-84c0776fe5cc","OpaqueRef:6211b6be-10d3-7179-3ce9-c9939bcfef7e","OpaqueRef:0f89fff1-7a05-fcb3-2fec-f01f527d9f33","OpaqueRef:92720e47-6810-ac5c-2c7c-ecee66919943","OpaqueRef:a9c6394a-92dc-b5f3-e377-438eda6cc36f","OpaqueRef:ca3fd393-55a0-9270-af2f-9a597674113d","OpaqueRef:9e19021f-426d-0492-91a2-d2bcee7eb6ee","OpaqueRef:1c2b0fce-97b0-af45-8117-3f8a18bf11c1","OpaqueRef:69669133-f49c-5eed-22c0-654a80cc085c","OpaqueRef:e800a707-f7c2-c185-80f1-3c298a352591","OpaqueRef:ac2c2a4c-d87a-c905-b8d4-52dfac47e848","OpaqueRef:cc20c134-daa5-044c-3982-93ad5b30ae16","OpaqueRef:56e4df7c-d3b3-7f0c-5c06-67b936e5c967","OpaqueRef:bfa4946b-f2ad-9e5f-d17d-0d129a9e9afe","OpaqueRef:9dcf063e-c70f-4076-bc7a-6436a11bf93e","OpaqueRef:f103f866-344b-fc35-82a2-1d8bd72efa19","OpaqueRef:8dbed2d4-f59e-4eda-25f5-49475952e89c","OpaqueRef:37eccaa8-7371-5762-181b-9221a1f3cdbe","OpaqueRef:ab350a94-3042-f6fe-fcdc-d75b304753a4","OpaqueRef:b5337a5f-8bd6-7c38-19fa-78b2dfe69869","OpaqueRef:ebfb160d-b269-e2cd-e530-e1422739fdd4","OpaqueRef:c75bb9b3-7413-aa27-4188-ba2a88e56822","OpaqueRef:42163f5b-56b3-9e8e-ee1c-568efc8f5585","OpaqueRef:7c8150f2-a9a6-88c0-ea1e-7093481218b6","OpaqueRef:9c8ae951-d516-eec8-d7ea-fd503c5fb112","OpaqueRef:a7e7ccf5-d7a3-c58b-15ac-dd6ac8da3241","OpaqueRef:6d88370b-3862-5c0d-2be0-558320f32846","OpaqueRef:69031664-571b-6054-c87d-77f5766e28cd","OpaqueRef:6957a0cf-3546-c299-ad05-c7c67b94f095","OpaqueRef:78482840-d3ca-b1b0-0c45-53a75b7824f9","OpaqueRef:136dc56c-fb71-d27a-6436-6c7a37831d3b","OpaqueRef:b7dcdbcf-3a6d-6b68-17b0-0a52a558f759","OpaqueRef:a77f9ed8-e7f7-95ba-6c12-c799c76ade5d","OpaqueRef:c99ef94c-ad6c-4d0a-b60f-eadd036ad879","OpaqueRef:7f6c525f-a121-4708-5f9b-b6ef7ee97ecb","OpaqueRef:4f5440f8-84e3-e8a0-de81-efd0ef34d53b","OpaqueRef:9e2f661c-9cf2-0983-3c14-7c2e4de9eb5c","OpaqueRef:05cf5f8c-0219-db92-26a1-29047a37c972","OpaqueRef:4fc1bf13-e0be-d634-8559-8b19c590afba","OpaqueRef:618815a8-ec46-44b9-06f4-0d53ecfb1fbd","OpaqueRef:6ab3a927-cd0b-5cea-885f-1191a21ccebf","OpaqueRef:32b9bc96-01b8-dd88-a59d-3294434bcf10","OpaqueRef:a8ffab48-a8e1-853b-f61a-0d9324076916","OpaqueRef:63cea2bb-cb2a-19ba-fed2-35e55e2088ea","OpaqueRef:1c05c0f1-dfa7-f44a-7c7e-40bf1149e207","OpaqueRef:b4ccebf0-cc8c-75f1-04b5-6df76d8fa138","OpaqueRef:5ba592b5-eb3c-5b65-0bfa-a7c73bc62cb2","OpaqueRef:a7d2f695-623b-686f-25e5-e470bd6373e1","OpaqueRef:4322c6ea-1807-3e88-4104-269a8510c62d","OpaqueRef:1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004","OpaqueRef:a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c","OpaqueRef:78f71ff6-7c64-3281-44b9-025cf751e185","OpaqueRef:44847e22-2d67-3744-0698-506f6a8243e9","OpaqueRef:7e5e9fde-3ee4-7cf1-4756-915f745b4914","OpaqueRef:f7367c8b-fa04-520e-e0cd-3c3e1aef8bc3"],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0165f154-ba3e-034e-6b27-5d271af109ba","$type":"role"},"OpaqueRef:b9ce9791-0604-50cd-0649-09b3284c7dfd":{"uuid":"b9ce9791-0604-50cd-0649-09b3284c7dfd","name_label":"pool-operator","name_description":"The Pool Operator role manages host- and pool-wide resources, including setting up storage, creating resource pools and managing patches and high availability (HA)","subroles":["OpaqueRef:cb68795a-8d1c-f2bb-6869-4946fd2df840","OpaqueRef:1839c84a-cc70-8ca7-c500-f2d85b30aac4","OpaqueRef:eb5f0341-f8a6-e605-9433-d85031bb2770","OpaqueRef:da8ebe60-05d9-260e-84f8-b13dafaf518d","OpaqueRef:ffc2ab72-3051-2c0c-6fc2-5ccd32b6f251","OpaqueRef:6523834f-9b0e-f8b9-2417-43e0fc980cd1","OpaqueRef:df2b9f34-2b7b-56b3-da9c-9bc9c0ea0597","OpaqueRef:632bc7c1-60f2-a9ec-2db6-77992be390a1","OpaqueRef:73ef731b-d2b8-a643-f02a-276577b88b3f","OpaqueRef:e9008880-3714-e128-fcd5-d95cb8ee790b","OpaqueRef:efef35a8-cf3d-5f27-e7ad-a2f6f5202dac","OpaqueRef:52684caf-e375-6caf-3396-62bcd5134d0c","OpaqueRef:f39da662-3800-921b-a6d2-237aa094b51f","OpaqueRef:9fea0775-bfb0-bfd3-ea51-8d64335d23c5","OpaqueRef:9dd59816-dea5-9ea6-d863-53ddeae637c8","OpaqueRef:d64eb5d6-2027-3d46-65f0-e9f0c0ea8c64","OpaqueRef:9eaf06ef-8f42-4832-7099-e5a63d32a87d","OpaqueRef:fd7dc035-3957-b7a1-f7e9-905f9f523ff4","OpaqueRef:cb82f07a-4829-4df9-1817-2e6979df85a1","OpaqueRef:a6d1d05d-8769-4937-bbbf-13105b2fd6d7","OpaqueRef:daa86366-a0f6-b130-2d3d-77fe1355d6a3","OpaqueRef:91a8843e-12a6-4b4a-2d43-12db6b326490","OpaqueRef:bb22da75-1be1-172d-d8fc-1a1d7c45e425","OpaqueRef:ff06fa4e-8ca8-799a-f189-9cce85f6de90","OpaqueRef:95a849f8-0df0-feb8-7f87-4db6bf42da08","OpaqueRef:15dbefed-137f-5c07-a484-8f1ba24fb156","OpaqueRef:a3181fc3-eb26-baa4-ddf9-a6c9f2af5812","OpaqueRef:966296b4-fccd-e24b-96e7-d849e9aeb629","OpaqueRef:e8564257-d2d5-cfdb-03cc-93d65e6fbaa3","OpaqueRef:cdd503ab-a2e0-2ca4-63cc-e3df44ec5b51","OpaqueRef:bb963f3d-f70e-f9ac-7fe3-c7aac49cf13c","OpaqueRef:868dae0b-7f24-6fde-fc5d-0efebefe3c16","OpaqueRef:7193632f-b165-b0df-6eec-2e71f08aa430","OpaqueRef:38d061c2-1df2-dbbb-c049-44bc0b68eb1b","OpaqueRef:606450c8-c382-ccf0-2505-0ac239ad4adf","OpaqueRef:945bb27d-4f1f-d1ff-0e32-baa566437bb4","OpaqueRef:2c8931b8-0efd-9380-aa53-ab086ba4a2cd","OpaqueRef:0f9390a9-fd1b-1f93-d557-738545a56943","OpaqueRef:defae495-80af-75ac-d7de-a87a7dfcde9d","OpaqueRef:2e0163e9-7ec0-4088-aea5-688b3188b974","OpaqueRef:b0104ee0-e56e-e24a-01c9-be7b31ebac3f","OpaqueRef:daf3a43f-afdf-efaa-cb25-6ffd8ddf61e4","OpaqueRef:ee19a249-eb0f-2076-81a7-8fe7cbff99b8","OpaqueRef:c43079a6-7821-364b-4269-05745d93e29a","OpaqueRef:4a544977-600a-957b-28e2-3b578998c8f5","OpaqueRef:24182612-bdde-08d8-8548-7a8922b40d59","OpaqueRef:0c393fa2-41f9-c981-5581-eb3000f8316d","OpaqueRef:5fa8a325-b230-e422-624d-78faf5473eda","OpaqueRef:19a7836b-75be-43f1-9f23-856f2be12fc3","OpaqueRef:c4dfc733-e053-1074-1a54-5cbc33ddf686","OpaqueRef:7d443d66-a509-ddd4-daf9-8f5c4ba55b4c","OpaqueRef:6ad192de-f028-0771-7f5b-bd20a8fe4caf","OpaqueRef:1421d041-f186-04a8-be92-a1b91244eba4","OpaqueRef:a66cba35-0b84-5261-664f-39c0d9ed54c4","OpaqueRef:e2cf5c12-4316-3fde-fdee-1f962e52a24f","OpaqueRef:f181149a-5c39-d532-a32d-b4c0cbf30f76","OpaqueRef:31b3ea7e-18fc-43fe-e8fd-2c48fc5fd38f","OpaqueRef:532e25ef-d282-4334-8145-2e7b0573c7b6","OpaqueRef:87e03946-2afb-f82b-7c4c-648c5f68bcb0","OpaqueRef:a62dfce5-4367-62b4-2b47-f178439fa685","OpaqueRef:5ff08560-8064-5ddb-b549-9c57ceae4cd8","OpaqueRef:d0c0c85c-c3e0-5012-0a48-59d9c2d517c0","OpaqueRef:b17ad6bb-dcb6-20d8-0b93-ef84167ebbc3","OpaqueRef:66fa6648-3999-7a19-20c9-a25827d96b8d","OpaqueRef:0b7902b4-8ad6-b117-efbb-c2c2f056e009","OpaqueRef:2bf43b36-87e9-a224-4f48-9378843e4650","OpaqueRef:060f7f2d-13cc-7c62-5475-aa3b7498d677","OpaqueRef:2269bda5-7534-f62c-3369-46c3b4e6f527","OpaqueRef:761f5f58-389c-d42b-185b-27d3649589e6","OpaqueRef:7a7b22ac-e5d5-cea0-a320-857896f593e4","OpaqueRef:f64ba22a-a70a-57da-34a6-adde7f50b686","OpaqueRef:b26b0c85-5d82-e7a0-fe8e-ee26ff9670b0","OpaqueRef:182167f3-6dc0-b2c6-0ddb-2264903634cc","OpaqueRef:96052543-180c-6280-5b15-f2cc3cc4b089","OpaqueRef:eaf5e80c-79cc-aed7-f41c-23ea41568a39","OpaqueRef:acbd6ba4-b816-8e9c-9298-cae8b10234eb","OpaqueRef:0a581d00-0a14-6c1a-eb08-aee55c2a02fc","OpaqueRef:e61fbfbb-27a5-9b4d-c763-e9222b04d2fa","OpaqueRef:7f2c447a-558b-085b-53f4-15e9bde0bbec","OpaqueRef:acb54550-5aba-4e19-612e-12fa420b5687","OpaqueRef:f2eb9161-758d-0fb1-d254-0d20c628c865","OpaqueRef:35b648f4-a14e-5d25-fb59-57c74efda911","OpaqueRef:d40676d9-ddd6-21bc-cde1-e61e9e340cbf","OpaqueRef:433e5373-291c-2ea1-5b7e-81157e537309","OpaqueRef:074922ac-6eb0-c3b9-795b-62ef8efa69b7","OpaqueRef:cf2ec962-5270-cf53-d7ee-c29b07d2eb67","OpaqueRef:694efbc2-ae2c-5110-66c3-6a790f9f4179","OpaqueRef:5b0b6fc6-b286-89fe-4915-9f8fd82ebe41","OpaqueRef:e9de48a1-e723-e998-5aa2-856511ddd799","OpaqueRef:51f79664-2471-8018-6975-c75f214995f8","OpaqueRef:da9e6d7f-1d0a-50ef-1a87-8ace46f5be45","OpaqueRef:39ffaa22-27dd-5241-7880-ea677905cf86","OpaqueRef:552e253c-3b23-b27a-08b9-8342ba2c7aa9","OpaqueRef:6c815ba2-1dc8-c9da-9e17-61367f52328e","OpaqueRef:d2446ff6-79b3-58d0-1428-0dbe75485624","OpaqueRef:c35132f9-9d6b-4d83-8814-386c304c5b02","OpaqueRef:8eb4a4e6-e48a-310f-6850-cdf1fe544858","OpaqueRef:6692b21c-f620-f0e5-dbf2-dee1294645f2","OpaqueRef:090b0fa9-c127-16e5-4c17-4d08b4126ac3","OpaqueRef:03e94bb0-c911-2f70-33f8-b41aae2c6c18","OpaqueRef:b63d6fef-2e86-46e2-432e-3810c30a3fa0","OpaqueRef:fd737c61-91a8-e31f-49c9-ac46ef649b95","OpaqueRef:120c9250-46ec-3a62-fa14-99923beac495","OpaqueRef:398b78fb-3fe4-77aa-0c1a-9813c4f82308","OpaqueRef:76f60054-8565-3e4e-8f56-8a0d10e7b319","OpaqueRef:2f5abed2-d4ad-5afc-9c7b-3e6a1d78ebba","OpaqueRef:d1068e76-7374-9cf8-7189-03e003acf7c8","OpaqueRef:c9d198f0-f2bc-2be1-3d96-298db54fc798","OpaqueRef:2abfa053-fde1-2b41-3f57-42d9bf4fa586","OpaqueRef:d7ea15b2-0664-1cd5-dc30-7c49a546ae80","OpaqueRef:e2203194-7c7f-1b58-83b8-965b7c88898c","OpaqueRef:fe22cf0c-dbf4-50c2-8eab-9f9ab233142f","OpaqueRef:7c1bf39d-8af8-01b1-b4b5-bdb54d287f1a","OpaqueRef:07de6fc1-c0cd-9b21-36c3-5baccf8d66ce","OpaqueRef:91d91080-a0b6-52e1-6c47-f19344682005","OpaqueRef:e35d6b89-5c97-f156-31c9-e518d3388659","OpaqueRef:f24972c9-f349-ef08-fa5a-54fb2b6eaa11","OpaqueRef:21eba7f5-f073-2d8e-2a41-183d3974d2a3","OpaqueRef:762062a0-4d4e-0481-4f91-9974b0f63974","OpaqueRef:6cc44d23-5081-fdf7-ee05-374043579763","OpaqueRef:a274ea64-2a4d-acec-b96f-32e36893fa83","OpaqueRef:f5e9d166-f43e-55e6-a50a-b9d788d13a0e","OpaqueRef:df1020a5-3e1d-672f-eb02-f85ff1604765","OpaqueRef:530fe816-39e5-b429-2034-eed4c4463bea","OpaqueRef:6560fc11-49fa-5009-b9d6-0ec78e323867","OpaqueRef:ce8c8758-07cd-04b4-8086-945682e2b949","OpaqueRef:24ad1c99-0b78-84fd-fb2c-d0ed821b8c55","OpaqueRef:bb97a595-e5af-1b54-9397-9252a92e5d35","OpaqueRef:1bf80bec-4d61-7551-907b-63dfdb72c416","OpaqueRef:bc0653a4-e028-efba-fae8-e5b17731c375","OpaqueRef:f2a2ba01-3dbe-1e3f-6786-b552b51e0b24","OpaqueRef:539f0c4e-7084-9181-9fe7-4ed8e2c32095","OpaqueRef:6ee3304b-df34-a1cd-3e11-530d22b55642","OpaqueRef:c374b534-db7c-2c7e-f405-b061d3adc23d","OpaqueRef:006a72c8-531f-e719-3fdc-69f8b5c5f8df","OpaqueRef:4d842444-22ca-0ae0-365f-96b9de2639a1","OpaqueRef:4b46d426-0071-da23-974a-d20ba16379eb","OpaqueRef:52e4bbbe-6428-b508-903a-c5c9ca432c0c","OpaqueRef:5e647d58-979a-4dbb-75d8-aac3ecfc2767","OpaqueRef:6db0dea8-3637-8c86-512b-21c722658b20","OpaqueRef:e6500c28-5f5e-df5f-3e8b-3220b86236d4","OpaqueRef:d39058bd-c379-93cb-56a0-eeac301a98ef","OpaqueRef:5c5ec919-8ff0-3e43-9530-f6af022b6df3","OpaqueRef:e7ca4ff3-0af1-cae7-bd98-fe42a5187a9e","OpaqueRef:c9c07dda-6524-1318-219c-f859f01363d9","OpaqueRef:161d6a70-b3d4-3d26-06ee-89b75808cf1f","OpaqueRef:05fdbf08-04dd-1ee7-85e9-023d2367ae08","OpaqueRef:ba064948-133c-a781-a76e-bdcb7ba95ad2","OpaqueRef:677e08b1-a821-6148-1e38-2f6a3b8a2098","OpaqueRef:d99ab5bc-8b15-20b8-b6c1-cd1e87328217","OpaqueRef:bd902185-7c85-4773-07db-e26912ed083e","OpaqueRef:ee6c04af-8673-7e25-f5ef-54d21b838e6b","OpaqueRef:a170dda3-234e-3dc0-814c-99fb7d094eab","OpaqueRef:ece28d18-1857-ab11-3fcb-5df868262d10","OpaqueRef:aa78afeb-3181-fb7a-52b0-e174b682b0d0","OpaqueRef:16914305-3953-30e5-f0c0-4a45b161b668","OpaqueRef:2b5a7aab-29a5-b3cf-2d91-944fb2d22e66","OpaqueRef:aaa35cdd-a8ab-ffa2-e7c3-327df4d313f2","OpaqueRef:f03fbd01-ef08-2ac6-7db7-85c32289f29f","OpaqueRef:d4664f0e-dd3a-381d-a0c0-0af168d6f811","OpaqueRef:d7ddd962-28c6-9807-c03d-43694243cd3f","OpaqueRef:c000005f-5f22-5600-2e12-85495d6e02d7","OpaqueRef:cf7a77ea-5bd9-ad1d-19f4-b58701eb3be6","OpaqueRef:29d1f9bf-6aa6-119b-d42c-66bbfc290f05","OpaqueRef:19b96aba-3c88-8763-2dd1-c3f90daccc9b","OpaqueRef:aa46e99e-47a3-f937-5d49-789cffc42ced","OpaqueRef:9801533b-f160-629a-a994-e742e7971455","OpaqueRef:7033b792-890a-4ca5-0314-d6e8866d98ff","OpaqueRef:8303392e-0602-1627-f095-7d213fecc091","OpaqueRef:1ca264d3-a51a-6f66-6c80-ab7c9045c43e","OpaqueRef:14e2b30b-3914-3eec-97a7-449af2a01521","OpaqueRef:159067df-8a25-53b0-d4a7-8a2041e88257","OpaqueRef:e78ab05f-eed2-a737-ae9e-45cf74eaf3e6","OpaqueRef:8ebb3800-5b1c-0ca3-c9e8-36eb1f655069","OpaqueRef:b44f8c55-f4a4-cec7-5c37-abc8baec46e9","OpaqueRef:5ed4c75a-a705-cbe3-c93f-6f5b652c1293","OpaqueRef:df654d18-e941-25db-18d8-b735dba1a499","OpaqueRef:421adf0b-10bc-728e-e777-10fb174d6a53","OpaqueRef:525b5132-be91-74e5-c9e1-d42ea0ede4b2","OpaqueRef:cbd24236-a99e-a9eb-ea57-76544dd559b9","OpaqueRef:57a4035c-2176-1a2e-cca7-605ddbef54d6","OpaqueRef:bf00c330-4ef3-1109-c17e-cf69d8996cf8","OpaqueRef:ed7c36c7-be82-afed-7751-644215155619","OpaqueRef:e58e85dd-0873-8df8-bf0e-a78ad73a0d83","OpaqueRef:7c284010-cae5-10b6-b321-ec149287a8c6","OpaqueRef:cd2c87ac-2763-dd45-0e22-b563622e5c9b","OpaqueRef:7b8b54ba-d4ec-bdc1-89d1-4c48e9046ba7","OpaqueRef:f78d82f7-c143-7172-096e-ad50798f475c","OpaqueRef:e4aac618-ccf9-4592-c23d-f829bbcf563b","OpaqueRef:08cfa7e7-f341-4a78-6035-87d5741d02e8","OpaqueRef:5103be90-76c6-cffd-3512-d622d93a74a2","OpaqueRef:6b28edf5-7612-be94-cccb-b7f2993b9104","OpaqueRef:d6645112-98c5-829e-d842-8d0241d909d8","OpaqueRef:a31fb120-d59f-d003-f445-557c6d40f0b5","OpaqueRef:54014da8-4ef9-638c-1089-074874d47231","OpaqueRef:f094e5cd-c351-cdcd-01a2-a9c9ee14941e","OpaqueRef:0e32a766-a0a5-00a3-0058-0bce4987d801","OpaqueRef:d632d605-4171-f42a-7898-62245cc28f04","OpaqueRef:bf994089-76bf-cf4b-1400-34152d3fc603","OpaqueRef:0c6c285b-58e3-348b-67e9-2cf1aee0f8fa","OpaqueRef:7b8834dc-6594-da5a-9bdb-22c2e2d146a0","OpaqueRef:d4385002-b920-5412-4c57-b010f451fa81","OpaqueRef:0176088f-47bb-ab62-5325-5d22acc71268","OpaqueRef:4b0e8acb-dfc4-78b8-4fe2-b670d7d97890","OpaqueRef:77f0dc45-f46e-2242-14a9-22aa38353039","OpaqueRef:3c2b3e8d-ec65-9479-3074-7fb06b75928a","OpaqueRef:864a2586-45a3-a18e-fc4b-970429066482","OpaqueRef:4bac4c85-f235-32a1-b4e6-c4237652134a","OpaqueRef:4b7ea29b-eec1-c56a-304a-b68c88799fed","OpaqueRef:1165f711-b47e-76ec-dbac-4c225b4b9ddf","OpaqueRef:1b53cad1-0fb1-6b52-0875-c7f999a1a02f","OpaqueRef:009895d6-2a35-f2b9-5dbb-fca46c208424","OpaqueRef:d533db5f-b3c7-5053-942c-1ec28b1f25b0","OpaqueRef:3f3ec99f-91cf-3ae6-8a10-78901c4b25ec","OpaqueRef:1a1d982c-8dfb-5dc2-c535-265eaf8adb3e","OpaqueRef:86098675-bebe-e1d7-c063-988b04499e45","OpaqueRef:b798b24d-1067-d2ea-7fc9-f147d916ba47","OpaqueRef:b4992000-119b-662e-22d3-ff2ba2a55c0b","OpaqueRef:2694b9ba-caae-160a-1fee-c4401f7eb871","OpaqueRef:20192ebc-be70-d33d-c163-1770a526a958","OpaqueRef:76df53df-4e08-fd20-80be-8382f055f47a","OpaqueRef:c58e0892-cfab-2364-6b9a-fccf603a29e6","OpaqueRef:09f1a83f-01ae-ed9c-c781-98517d1dd3d2","OpaqueRef:d1e16e8d-92e0-ccc1-c85c-c2244e99ae74","OpaqueRef:27e9e225-a5b7-ca6e-75d3-5b4cb52d3627","OpaqueRef:9a38b22c-0f0e-1bb3-323f-04b4445a3700","OpaqueRef:b6a98068-1e06-e7fe-1010-269343afa0b2","OpaqueRef:f0155615-65ba-9161-c3bb-cac286bae2b1","OpaqueRef:d3c5c812-c278-9827-8e2a-24bbdab201a7","OpaqueRef:531f332b-49aa-b429-6f50-4d803205f792","OpaqueRef:fcf7dbbf-286d-73ec-e9e6-6c329a627d01","OpaqueRef:b95dd845-4bcf-0a4f-a5f9-dfb6b45f5b7e","OpaqueRef:04e56171-2991-e1d5-f908-d6aa4ea70bfd","OpaqueRef:e57f5462-775a-c7cb-0098-6f5d512abece","OpaqueRef:f35f5fa2-d886-5a8f-a5e4-1e41237e20d9","OpaqueRef:d2071cda-fa54-9231-7db2-fddb3112eae7","OpaqueRef:0423894e-139f-10e1-855f-4a550175b615","OpaqueRef:f089614b-16db-9e28-06f9-0e0ca7be5320","OpaqueRef:941a6983-a5e2-3772-ed58-1e2aa29b1436","OpaqueRef:47999374-b082-b73d-09d1-37bb2836d522","OpaqueRef:5937be6e-540c-da35-a08f-45b6bee6950c","OpaqueRef:dbeaa6f0-69c4-9e7b-b72b-7f7e6ea15ded","OpaqueRef:84aed1e7-ce75-1c04-9221-b41765e7ec25","OpaqueRef:e478de94-cde3-2ea2-8b29-3ae4b3ff6cc8","OpaqueRef:e66a5a0f-8c8e-d629-ba92-1b1f0374498e","OpaqueRef:12c18c1a-3ecf-e8bb-646a-eaaf975c5813","OpaqueRef:fad90582-c075-9587-bf3e-d24d76692ba8","OpaqueRef:13a11943-2578-a1c5-b1f4-c5e25c5d070f","OpaqueRef:7a156321-0c6b-a61c-3cda-d9e580d35fbd","OpaqueRef:b005f138-d13c-ebd2-bdd5-1e4550f3ba91","OpaqueRef:c00d0e92-ac51-2914-ce0f-01292607e440","OpaqueRef:12dca690-28d3-8620-e4b6-a16beff24246","OpaqueRef:2d90779e-cf44-eaf2-b452-f843b56b58fe","OpaqueRef:79f576b0-2f82-8786-3ef1-7e90ef0fbd56","OpaqueRef:9a8e1a97-9547-897b-dddb-5753fc491146","OpaqueRef:ea2e80cd-54dd-4feb-e266-4c4a8acf47da","OpaqueRef:1f843368-7d86-3388-f5e1-37e7451690e3","OpaqueRef:612d96c0-c6d3-073f-c3af-a9a471d6372e","OpaqueRef:6a10a27b-0a5b-721a-3a2a-931542eb779f","OpaqueRef:c86ce51a-f6ca-5685-503a-e8f988d8f3a1","OpaqueRef:ee92c33f-0176-2f81-7850-d8274d543cbd","OpaqueRef:05e477c2-6a5d-f53a-ccf3-28f472a19553","OpaqueRef:f45b5cb0-ae54-c2ec-d5fd-3f3d9d6ea490","OpaqueRef:40c1f55a-58b1-4624-6e2c-dfd04e8e0f0f","OpaqueRef:654a657c-4f57-0385-b0b5-f11bc085f916","OpaqueRef:b0d95391-a938-cc75-303e-543e6a5c07a5","OpaqueRef:a46d2d35-0fdf-7a75-6025-ee689f25773c","OpaqueRef:b1dcf01e-9390-4ad1-0f2f-8263dd9476c5","OpaqueRef:bc55b6ed-c4df-4cf5-2118-8421fca4dfba","OpaqueRef:caf63646-b530-624d-9fa6-d6b1ecfb1c82","OpaqueRef:ab0341ec-b69f-cafb-c519-d7f18a922839","OpaqueRef:398b1e83-6b06-7664-4efb-ee31275c86f7","OpaqueRef:e1b7c2dd-7c41-3fdc-2cfc-4f867d00c333","OpaqueRef:15b8f6a0-991c-7089-1ef9-13e4f77e2556","OpaqueRef:4a622ed6-a1ca-4eba-7b12-59480d645194","OpaqueRef:61c08156-de47-7f68-035a-7cb5e42de46c","OpaqueRef:7823a440-ae2e-1c9a-d613-1aca2913b5cb","OpaqueRef:e80dcb82-245c-feaf-ac10-679cabce6713","OpaqueRef:c7c664cb-1efc-9388-91d0-28100c085aaa","OpaqueRef:3f3480e8-c6fc-b6bf-05f0-a6377ab50db1","OpaqueRef:b5189a1d-4fd2-8953-ab9d-8b970655f47c","OpaqueRef:02e0b886-32f4-1f25-d83e-6e88ab11e20f","OpaqueRef:9cd6b930-8313-fbc2-7214-083a6d9ab81c","OpaqueRef:92e5a45a-edd9-635c-8929-b4956320c847","OpaqueRef:dbc87b09-5539-c8fd-9c4e-0659a7217325","OpaqueRef:cd5aa26d-42b9-0c3a-a136-b4b3fbf2e17f","OpaqueRef:866c4d54-adbc-cd19-1540-183e7ad9bdd4","OpaqueRef:43bed9f5-4bb8-551b-8540-922b40e0dd42","OpaqueRef:d1ff49a6-6866-db73-c3ed-6faeb5460a6f","OpaqueRef:4c98e491-6bb2-7ce7-460a-3a9471bbd598","OpaqueRef:9ee4625a-e02c-100a-c621-43852bfa3d29","OpaqueRef:a0be8b9a-d205-110e-3d25-525f697490b8","OpaqueRef:c236c0c3-35a5-f7a4-59d1-1f7c0b9f3e6a","OpaqueRef:0f24aebf-4e7a-325e-2741-6a1d2058ec31","OpaqueRef:16903632-2be2-df6a-f611-5e3c49cbe0dd","OpaqueRef:68842386-54d4-21d0-b374-3868c4195c7d","OpaqueRef:8ab9b8e5-1b7e-b05f-7889-da1b89be11f8","OpaqueRef:f455a71e-e0ba-5da9-3b16-89ad594976cc","OpaqueRef:f54e4617-9438-c1ba-d8d6-572fac712fb5","OpaqueRef:f2495b2a-1230-9278-bebd-93fa6d8b3fbd","OpaqueRef:29ad72a1-9024-a9b4-9224-65f66ba950f5","OpaqueRef:1794530b-615b-581c-6a04-f5582a545c32","OpaqueRef:845ce175-49cd-1ce3-0ffb-0267ce3afeab","OpaqueRef:fb9b9a1e-8d10-f254-c1c5-6848f19e82a8","OpaqueRef:a7af6687-e67d-2820-4eb8-d3f45c68f237","OpaqueRef:26bf73e8-f349-dba2-a7e9-9eb1e0b182cb","OpaqueRef:88f04cd7-9daf-fb60-ec90-720bc2a252c2","OpaqueRef:dffecfb1-e0db-1f2b-87e2-109d72562608","OpaqueRef:aa8f3abf-5f51-8ef1-038c-5f5391c1762e","OpaqueRef:076441c4-1fe6-1681-52eb-5593cd018537","OpaqueRef:b55d8910-9487-9485-5408-06d3a0232abc","OpaqueRef:13aef116-19fe-3a1f-2041-41f5a1a41e3d","OpaqueRef:c4739e90-efac-29be-27ee-b40047d88653","OpaqueRef:e5ab4d36-a5f8-3a95-ee23-281c9e16974f","OpaqueRef:81fd4de4-5bbc-7ba4-c2b9-8d2cf7e80974","OpaqueRef:4fd7812c-7d30-e97e-73fd-f428da986071","OpaqueRef:45182b24-24c6-6a9c-01c3-49ac4a6bfb04","OpaqueRef:b4c7644e-ca1d-c511-fba7-3f7474dae079","OpaqueRef:bf77e796-59d3-18c0-116e-a30e514e47ef","OpaqueRef:c70f5e19-5cc8-09b0-900e-752d10caae49","OpaqueRef:ab44acd6-dc9d-6533-3e96-eeb6690c03ab","OpaqueRef:67bfa576-0e16-1fbc-3916-7c7258702d23","OpaqueRef:181f66ab-cc92-1fc8-b3a9-8b4bb1f74acf","OpaqueRef:cae4947e-dfd0-ceef-f8e6-7de4e4596a0e","OpaqueRef:f48b609b-4cbe-b22b-5240-10d3b4df505a","OpaqueRef:19a7222c-dbb7-e646-6160-c30e82608772","OpaqueRef:b1203245-34c3-7026-c290-d998c5e94b69","OpaqueRef:7a3744a6-02a0-fe82-1201-31301aea1f2f","OpaqueRef:d24ca751-b516-edff-736c-3e6b0719115b","OpaqueRef:f458e427-5928-9057-c219-df99153fc075","OpaqueRef:895c0c2e-8b08-ed68-e7c9-c2ca8ebea573","OpaqueRef:0653de2c-ffd3-554f-d7be-1ecd0e140093","OpaqueRef:d1d95133-7aad-02fb-0ef4-0e3553fbfe1a","OpaqueRef:e215abe9-6d54-dc46-ed03-61829c477270","OpaqueRef:06044457-78bd-e927-7926-06cd6cda2dc8","OpaqueRef:f6424fe6-db32-cf8e-e2d1-b5e570812e12","OpaqueRef:7fa1e0d6-4301-86d3-f678-989f56a7f9e5","OpaqueRef:4e458b99-04ca-4759-4f2b-25943a270d11","OpaqueRef:3a33c68f-e787-39c5-568b-9ed6c00f64ba","OpaqueRef:ad25d5f7-52e3-29a6-3e54-9e8b0cdfe8b2","OpaqueRef:0f9a4bd3-1ac7-0694-d293-5b5cdd3a96d1","OpaqueRef:24b924aa-926c-879e-d2c1-fe778e82ccee","OpaqueRef:b91518fe-0a95-4001-8b10-34e30581fdef","OpaqueRef:b6096493-b47b-3bc4-a9b9-6d670a304017","OpaqueRef:4788c0d8-8cc1-11b0-c43c-0ea2b02689b8","OpaqueRef:60d79042-e0b2-74fb-5fc3-25ff0e9f200b","OpaqueRef:0391a375-885e-a621-2ed0-c5a05e6ba6d1","OpaqueRef:e0953596-a798-5359-5ae9-dc7d3cc23411","OpaqueRef:0c318a73-1355-8297-1aa7-7b59652d83eb","OpaqueRef:606aa02e-97ba-211c-ec38-d06b1ef5ed89","OpaqueRef:499c5989-c80a-2567-6f8b-50b0cf1f569a","OpaqueRef:0054aad9-6816-61a5-593d-ffcf68fe7c51","OpaqueRef:4f62cf52-b15f-d722-3b4d-51a9c67ecf9a","OpaqueRef:80305d17-0b56-9f66-6d8c-40abe30a928a","OpaqueRef:0d61beaa-950d-ce01-5971-cd55d77d0270","OpaqueRef:db89f0c4-5678-d02c-dbc9-ade235685c16","OpaqueRef:9a38b098-e1d0-7721-6817-e74d3cc63321","OpaqueRef:7ff61b17-b047-7486-b476-3a46d8a3f5dc","OpaqueRef:7e213280-e967-f94d-2663-7c0cd886aa71","OpaqueRef:196a22a7-3dab-e13d-19da-0e143da24513","OpaqueRef:434c57c4-d929-3bbc-e5e1-7549250f96a4","OpaqueRef:d443b5d9-94b5-50ce-a635-1ca03b81bcb7","OpaqueRef:3904db64-cf40-5c0d-9dfd-f97f8a5c4746","OpaqueRef:73494c5b-8e2d-5a6e-ffe3-1b7b7bc64370","OpaqueRef:bfac8769-a392-43a1-ee61-7efe606bddbd","OpaqueRef:1330c0d2-46d4-907c-dc55-725b8eea1b3e","OpaqueRef:49fbebcc-02ad-db79-cfb4-b3785cd53591","OpaqueRef:2c2b24ff-c9f5-e38c-ca9e-f3301fb492d5","OpaqueRef:ae7f81c8-3176-2c9b-98b2-0860a8df1037","OpaqueRef:9be81833-9377-e63c-a52b-84bf2885644d","OpaqueRef:ac16b434-b718-b77f-e797-4c8032c9a21b","OpaqueRef:de8bf714-f486-251e-f6f5-e566b8de1a9e","OpaqueRef:4f02c846-8a2c-b20c-9641-9f8019ccfe23","OpaqueRef:5eda22ca-411c-59df-3c2d-e8c40ee2a641","OpaqueRef:a23b22f9-bca1-caab-136d-9d1c6ee976b1","OpaqueRef:5b776f2e-a041-f093-8497-48c16883f061","OpaqueRef:b58c1211-94fb-cc3f-668f-9c64343d5ef6","OpaqueRef:f91b4e6e-e238-9fad-e78a-a61f6c222122","OpaqueRef:2c3326c9-127f-aee9-2e6b-520465156ca9","OpaqueRef:d8160e8f-a9e8-ad41-98ca-ddd4b20f5ca0","OpaqueRef:da44ea34-34ce-eee1-0fe5-e2fbd374087c","OpaqueRef:291376bb-00a4-4520-d42b-6fc685798827","OpaqueRef:c0eeaefd-fce4-4122-bf5f-6548c7627ecd","OpaqueRef:c76febe4-ccb8-b0f6-d9f3-eddfb8068cbe","OpaqueRef:4eb6785b-2126-b2f8-2c55-f5a0b59694e9","OpaqueRef:f4a6ec3c-6939-f4d0-9a0c-de0c4af7e473","OpaqueRef:7862cac7-5a00-3e1c-fa98-1ccad464efde","OpaqueRef:7afd9229-b870-bc5f-9dd0-c8e3aae1edd8","OpaqueRef:222b2a69-0e63-09d7-7547-63753f22a07e","OpaqueRef:ab13cd53-fee2-e913-c1d5-d8a73d183c04","OpaqueRef:50c826b9-553f-0f9d-6ec5-e56c4bfc700e","OpaqueRef:dac05e76-f5e0-98e1-0fd7-f1fee9f6ebf9","OpaqueRef:f24bf12d-005b-9aa6-7a45-1007eb1d8d47","OpaqueRef:e558eee8-cc61-ab94-2838-d11ecb19b9de","OpaqueRef:f0b68388-4ffe-ae16-785c-73bf1daf76de","OpaqueRef:171d112c-db97-c8ca-5322-c06f3b95f987","OpaqueRef:943b87d0-c97d-9dc3-4861-4cd3405d2166","OpaqueRef:562072f2-255d-6b53-1f30-4665c151ba36","OpaqueRef:ce7d44fe-5019-f0e1-c44b-284d048b53ab","OpaqueRef:889dd3b9-5554-3819-b5fa-1853a3527d33","OpaqueRef:cca9c4ef-8dc4-3928-6973-1001fefddcc1","OpaqueRef:1f582a02-628e-1dc8-3f8e-fbcf9e9cc8eb","OpaqueRef:bb0a41c6-9f17-3373-fceb-43ef16b241b5","OpaqueRef:40c692b1-cd75-58f2-1bbf-47972787d296","OpaqueRef:78595ea9-9a7b-2bb2-b7ac-888947bb5f71","OpaqueRef:05540a9b-fd89-62d4-15c2-569bb74a45c9","OpaqueRef:8624fdc6-5a79-3477-2f2b-a692d687856f","OpaqueRef:6c868e70-45f5-7510-e697-31565da1b645","OpaqueRef:50baf2ac-cd2d-8c58-6b49-7d922a38d506","OpaqueRef:b8d7db71-88c3-3973-0f76-afb5ea8758b2","OpaqueRef:b62edf58-9add-6c3a-ca6d-9f6bbeb2c8fa","OpaqueRef:c7b3adec-b936-8480-8162-4d0176e80494","OpaqueRef:1611b4a5-6d76-0608-be83-bb85cc0f4401","OpaqueRef:76add74c-9a76-ec09-e9ba-062f5fad673a","OpaqueRef:1eb1cfda-f398-99f9-2b7b-5a186bfb5769","OpaqueRef:48e48870-e314-22ff-23e7-9c81e0a09de8","OpaqueRef:6b99cb7e-9854-bbfe-13c4-23c85b58cd27","OpaqueRef:3b17375c-d99f-b75d-771a-d6bd526bc732","OpaqueRef:330de495-5f10-90ae-9985-a622287978cd","OpaqueRef:6950f134-0be9-1cf8-a418-b84f72b5c550","OpaqueRef:2da47eda-326e-bc79-2991-4178a7f91aa2","OpaqueRef:d3e10235-4c09-4b21-ac38-f5e7118ace9a","OpaqueRef:1cb862c1-6e27-7e9a-1757-d3340ce05a6a","OpaqueRef:4bf0efdd-5a06-f1f2-9e42-235746e68e72","OpaqueRef:07e67067-0db3-473e-f720-1b13cb7165cb","OpaqueRef:59d3a529-afca-f562-204f-bc882519cfc6","OpaqueRef:6745eaf1-b724-7ba1-6adc-6714d87ed055","OpaqueRef:fb5f1cd9-639c-fe4e-736e-59f602bd6769","OpaqueRef:63f5ab90-88e3-b9c7-869a-ad1e4725f6c8","OpaqueRef:8b2811fe-bf52-d656-379d-c4dc786d2863","OpaqueRef:f075184a-6d67-aeee-23f9-4af9fb3fdc70","OpaqueRef:72acb54c-837e-f60b-5b73-54258ba6f8ce","OpaqueRef:fc02d213-9915-5d79-f9f9-77981d5e7e61","OpaqueRef:fe33f11b-7386-0023-20a5-5d66b81d1550","OpaqueRef:ea08f6e0-a317-ec4e-b863-b58cd69e6f55","OpaqueRef:07ba3c3a-6d81-f137-050b-460a090cd95e","OpaqueRef:c3bf79b8-fc2a-16cc-2579-8fb3f1aee68e","OpaqueRef:b8e13938-03be-2a5d-fc3b-425b8f7966f9","OpaqueRef:d6a91ec9-3979-b47a-3b3b-5bcdfa7176d8","OpaqueRef:6419de42-529d-e793-ac14-e1afc0f4d3d7","OpaqueRef:e17a593c-8a4f-f38a-ebca-9bfefa5ca0d7","OpaqueRef:52e71fd0-4e0c-c56d-ecbe-1258494bd886","OpaqueRef:7980080f-48b6-928b-4b88-114da9c5fd80","OpaqueRef:36ef005e-7879-0edf-e7d9-54b5b5f6e467","OpaqueRef:ff2c84a9-3ea0-6792-fe4d-3215c397f3b0","OpaqueRef:18d16a24-b68d-43cf-69d2-7a5868998306","OpaqueRef:6d180e8a-3fc3-4459-2526-189b389da794","OpaqueRef:2ab8c359-c1ec-8a3e-283d-8ae963f6f8f4","OpaqueRef:9f533cce-7cfe-9091-47ad-d061296f0ab7","OpaqueRef:66a5a073-316a-fe3d-aa44-7d9f19e49417","OpaqueRef:4a2b195f-f477-f143-e4db-f96913abdf9a","OpaqueRef:4af3e675-5dd0-08c7-b67a-414e85223d40","OpaqueRef:cd17195a-9274-0b74-bc8e-3f0c916bfbce","OpaqueRef:864a54cb-981c-8bba-19eb-2c76ce406359","OpaqueRef:37fed550-72a4-a8c8-5468-8bc3bfd1554e","OpaqueRef:800592e3-30ac-bc00-4274-f9c23e335d57","OpaqueRef:699638de-d890-04ef-ea8e-5473742ceb88","OpaqueRef:5dc61f97-020c-3958-1531-9d950ebad058","OpaqueRef:0f104484-8054-bb43-0685-27030f6bebca","OpaqueRef:7122efb6-3045-2da0-b503-1524b692a5d8","OpaqueRef:79a22291-0fca-eeef-d23a-1b796b2123aa","OpaqueRef:fc844b8c-44f7-0a47-136b-9fdae98759df","OpaqueRef:539ace0a-c714-562d-f153-ce5df5f92265","OpaqueRef:a714bc2b-93c4-7785-d84c-53e40aaabc73","OpaqueRef:caed3120-c6e2-8d1f-4498-6aa7d966a575","OpaqueRef:aae2577c-a1a7-9646-9bc5-a9c082108eab","OpaqueRef:4bfb1275-7c46-d751-4ab4-f19c5e83bd41","OpaqueRef:1f8ca91b-4ba1-64f0-f0f8-94d0e3198d8f","OpaqueRef:96fbe84c-1cce-dab3-c396-bb28962a8aab","OpaqueRef:0b3c3543-7504-c5eb-4673-31e51971670a","OpaqueRef:94c23e3b-a7d7-d389-20ea-f5d3ef5c9d0e","OpaqueRef:edd1d574-8e08-4b9f-b11f-0e7d4b8cd21c","OpaqueRef:d6eb160a-fa45-e966-907c-777b372ea662","OpaqueRef:42534039-8f37-bce6-9039-93d2102f99cc","OpaqueRef:43e4cda9-b000-a516-5bca-fd645320cd94","OpaqueRef:f21699c6-5b6b-cdb6-1975-bc9a4db2bf4b","OpaqueRef:99fb86a7-2a9c-1f78-7c1d-5dd8507e9be4","OpaqueRef:b6cf7d25-180e-be25-9159-e0e307f4aeea","OpaqueRef:312e70a7-5688-3a9d-a2cf-4205e3f90291","OpaqueRef:85dc0856-788d-cf0e-f03a-f48410eb8f09","OpaqueRef:1b3e1eec-b9f2-7116-639d-20bdbd0e1391","OpaqueRef:af7b137a-4073-820d-6d70-d8a2af8fadcd","OpaqueRef:db06e822-3b47-bdb9-f423-547920353742","OpaqueRef:8f9cbce3-0281-58b3-3b14-aa2771ab5f7e","OpaqueRef:659f50a3-c9d9-42dc-2fe2-4466b1f79ce2","OpaqueRef:6da94f95-a02e-f573-12bf-dcfde7e43499","OpaqueRef:41c3ad8a-a3ed-1b47-c9bd-8a94704ddc19","OpaqueRef:5ed9712b-4b5f-6ec7-8403-cc4d9df52722","OpaqueRef:8f4e82a4-f8be-c01e-10a6-d0a74f28733c","OpaqueRef:d5d12c34-1ff7-0549-e6b1-b333ad750dc6","OpaqueRef:956adae3-0a93-7d20-5461-a3ad098af157","OpaqueRef:ba585c04-ee5f-5a5e-794b-ef25c06fa1fd","OpaqueRef:b09c0eac-e6f7-a1e5-0fe4-3adf9d6d38bc","OpaqueRef:1482f01e-2355-577f-f230-2e51fddf34d4","OpaqueRef:cce6834a-f698-3755-c4b2-17d866f608d4","OpaqueRef:8dfb37f5-203f-2ea4-597f-7c350f6233f1","OpaqueRef:3f9bb6d6-db4e-b115-a2c3-adf553886983","OpaqueRef:2770c2e9-7d35-17f7-5f34-9814d604a3c7","OpaqueRef:9760f691-5295-ecc8-bf2c-3865249c1f6b","OpaqueRef:a2a09fcd-1313-554c-9051-f4dd1c4474fe","OpaqueRef:82b892b0-b416-c7a1-298d-6030038b4d1a","OpaqueRef:955fa7ad-d7c2-4ade-aa2b-0bc95fb4364b","OpaqueRef:4a16dd04-0fbb-e5bc-af88-01046c72c54b","OpaqueRef:9350ea5c-ca28-1ece-9c6f-1c4ab918d119","OpaqueRef:d529b00f-b546-b67d-c50e-f0d216b2ef56","OpaqueRef:1ea042ad-d922-f7cb-90ab-9ac09e011670","OpaqueRef:0d87eda4-f5b4-1c19-ff98-f1bc171afb8f","OpaqueRef:6d3feec4-ad36-040d-b555-8c49b8015bf2","OpaqueRef:4c964b58-b18d-599c-140c-3d7e6fee0949","OpaqueRef:f9abf01e-9fd9-657d-9ad8-9d63a39e7c1f","OpaqueRef:86b1fd97-2498-0209-d341-78b596de9885","OpaqueRef:3f6f6ef7-c08c-f1a3-a05f-33956e2f3e2e","OpaqueRef:1f776a73-446d-1f0d-eeed-44ad6464f02c","OpaqueRef:52df136f-591e-cd8c-8588-3a34b9be4117","OpaqueRef:ab69daa2-fbe0-d709-901a-80bb8fa49f15","OpaqueRef:fa09b51e-0da5-a900-4da2-33752ad8a112","OpaqueRef:bebace76-69a8-cb40-82aa-5ecd4b882075","OpaqueRef:f05760c3-46d9-9cf5-8831-330943a33ce2","OpaqueRef:9a9b62f1-2fae-cc0c-03ff-147b35e7917e","OpaqueRef:e39b5c55-fcf4-41de-74c9-a38e278e85db","OpaqueRef:ca111bd4-768b-a624-f752-4d4a51ab2471","OpaqueRef:66ce4f5c-82d0-457d-dced-433bb8b5229e","OpaqueRef:16474184-4484-6193-a7f4-2baa521a56e7","OpaqueRef:cf7a0ae8-7440-c6ac-ef72-5454aadc19a7","OpaqueRef:6226ec36-c110-cf46-6923-b8917c576b09","OpaqueRef:209713e3-3188-5f83-125a-4d313e4aac7b","OpaqueRef:dcdaf30f-8e37-97dc-8d7f-2e8bb05101e4","OpaqueRef:1c6ae07b-8cc7-3334-d143-40fba15e5d1b","OpaqueRef:26c0013e-35b5-dcee-9b1c-e3e58b6ea1d1","OpaqueRef:38d676a9-1eca-992f-8768-65856d28ec39","OpaqueRef:76efe753-ae98-21ef-4ee0-c06be1ed6bf8","OpaqueRef:7ace0159-c007-b95d-d43e-90af54f7b4f3","OpaqueRef:0511b768-32ca-e60a-83d1-6089ee037abd","OpaqueRef:8b731fe2-d6fa-2b5a-738b-aa1501e2a00c","OpaqueRef:c2e03e88-ade6-a5ff-db5b-b92e0bc2e580","OpaqueRef:627b53af-258b-eaec-feec-9a1cfb5e915d","OpaqueRef:d6b2a0b1-1991-b740-0d48-242d5b3463b2","OpaqueRef:5502ee79-ceec-099c-740a-42e395dac81b","OpaqueRef:b498514f-0f98-ec60-df87-f1feed07141b","OpaqueRef:6ed4d7af-c4eb-85cd-cd11-abdfbf30fe2e","OpaqueRef:0cd88229-8eb6-dd98-09cc-8635498afcd2","OpaqueRef:58ac1559-04a8-f7ad-2224-53591cacfcb7","OpaqueRef:d7450039-1e27-7ac8-acc5-a698cb19a525","OpaqueRef:ae095db7-583e-cfc0-2cd3-db791d3b1671","OpaqueRef:8ddf8bd4-4146-aab7-5e60-37b3c59f060d","OpaqueRef:00f9116e-139e-c5c6-e647-308230cc9f5a","OpaqueRef:70787b4c-26d0-f9c5-9b31-1c9e291035c4","OpaqueRef:14ea86d7-eccf-8790-fe68-2cee27f915c0","OpaqueRef:7f355dde-ac8c-9a02-ce96-16a1a08c0836","OpaqueRef:1c6bfef7-d9c9-4b53-4184-c72d5896e910","OpaqueRef:8ae37793-9d90-d55d-bd48-328657eac262","OpaqueRef:4748a78b-fbc6-06d6-9a9b-0fee76a37e42","OpaqueRef:922f39f2-c948-d0cb-813a-8fb675fe1209","OpaqueRef:5e5aa3af-ee5b-3973-2b26-cf1882900d7c","OpaqueRef:ac681b2a-93d8-00e3-e29c-5fa8f9b6e94b","OpaqueRef:ef0d9a2a-4ab9-5368-fe21-28c9e7556aa3","OpaqueRef:d13394ed-05a5-8a53-ba59-20525ec873be","OpaqueRef:c71d068d-24c4-6d68-8439-3078c968141e","OpaqueRef:bceff7d6-7267-91cf-fef1-eaa65de886e2","OpaqueRef:b9a4873c-7e19-ebec-d524-f1d69da5324b","OpaqueRef:a433bf84-7725-f4e2-6f89-31054403dd87","OpaqueRef:e254be14-8fe4-916c-b287-25b8be1a6502","OpaqueRef:fae19164-aa28-38ee-e1e5-a3a3082729bf","OpaqueRef:86907190-69ac-4a19-df3b-6678644e64e8","OpaqueRef:1b21c1f0-e4a4-0028-90ca-1f9bf3b7342f","OpaqueRef:b132a88b-b242-3cf8-0459-4bd858b7dc93","OpaqueRef:505fcb18-5888-5bf2-75be-6235aba2e6ee","OpaqueRef:d5b5a870-45ee-4124-ec9d-3f16ed2c7db7","OpaqueRef:ac809817-a5db-b4a2-0b14-3ba7c0ff2165","OpaqueRef:7958cefd-9fdc-f836-fedc-22f89fd06ce2","OpaqueRef:176db48f-09fe-625d-8d3f-0588f796751a","OpaqueRef:dff728c2-2d9f-e6ff-57ef-a0e31f0927b6","OpaqueRef:7c4df9d1-26c8-8986-35f7-a1ec7f4804d2","OpaqueRef:0a561bf4-9228-cb18-0ce3-7d2a0d302800","OpaqueRef:21d14229-6be0-a401-6580-4ff98d459f7c","OpaqueRef:f850300a-1604-59c2-5cab-0a1380798fbd","OpaqueRef:3c6c94b2-f160-ff62-be39-e917e080f3d2","OpaqueRef:26e20184-1c7f-5596-b456-22ff28f2562a","OpaqueRef:5f5d40d5-5171-dacc-b6ff-497744f2d6cf","OpaqueRef:92d0e454-d08f-fe30-f288-33ac5e9a7193","OpaqueRef:98bb0b7e-5f22-9296-3405-4212a5746d83","OpaqueRef:2d33e554-7bd7-bbdb-8047-76d3195e9258","OpaqueRef:99f98089-5ec7-3e6b-c6cf-fe6ee4ca8bdb","OpaqueRef:131b3d34-1ecc-b92a-d1ff-7a45083bd6bf","OpaqueRef:724d860d-c6b0-aecd-97e5-a28c944cf21c","OpaqueRef:5dc23f7d-7008-5d99-0cd6-780fff26f7ad","OpaqueRef:332b3889-7848-14d0-1482-baff5d0636c8","OpaqueRef:69cd7eb3-9c03-a6ec-1942-77ccfef89687","OpaqueRef:49f55d27-bdb9-ea99-50c4-bab151c7ed0a","OpaqueRef:97f064fb-c947-b723-0102-5721b04079df","OpaqueRef:9eb90ac8-0202-8169-1668-8dc063319fe8","OpaqueRef:f781ba26-396f-e041-ad4a-88d04bace1d5","OpaqueRef:c4d88e0f-5705-b814-ebcc-483efb7cab9f","OpaqueRef:bcc0fef8-e248-bdf2-78f9-8611572bfa25","OpaqueRef:be4226e5-cc5d-56b2-44c3-f4d1f016b63c","OpaqueRef:52f4e45a-6737-6ba2-78f9-f76dd1b39419","OpaqueRef:d687b364-5ce1-9ab4-0594-1568e7962192","OpaqueRef:b433a6d4-aac5-d6f5-429c-fb6e4c3fb586","OpaqueRef:4fe83cfe-641d-099a-ca6d-921f4f3744ae","OpaqueRef:e45ebe26-d512-e459-4654-599e54505052","OpaqueRef:fb50a443-8fe4-c0f0-a40a-35866e647531","OpaqueRef:06528aa5-c284-54b2-d6a4-27e9eb6e7116","OpaqueRef:70f39d80-4c28-3d5c-35dc-54b207783366","OpaqueRef:894dfae1-9671-e03c-f718-537230205889","OpaqueRef:caafd881-5d9d-b540-4676-3589c250a6c9","OpaqueRef:157bc748-69c5-d7ce-1655-7ad8c5078239","OpaqueRef:4d5bc2f8-aae8-a968-6d42-5bbedb41cbe4","OpaqueRef:2b7dadfd-042c-c435-c96f-e91c489b64e3","OpaqueRef:4449c091-e436-df61-1829-db3afd4b7939","OpaqueRef:25dad5ce-deb4-8208-fcb6-b393ab735a7f","OpaqueRef:1062625b-dc3e-7604-3863-eac2fc25cfcc","OpaqueRef:0b33ba31-b80b-e074-7262-65ad91ff9313","OpaqueRef:759f62d0-2fbe-ef5d-cd7d-579117dca28f","OpaqueRef:10d871c1-c065-b472-0fef-42311c39c9b9","OpaqueRef:7a4d8574-73c5-a75f-8e25-62e9d8d87113","OpaqueRef:434bfc07-d354-2256-9a7a-d48b4df941bd","OpaqueRef:298b2e59-3b4b-dfa7-650a-7a70d07520fe","OpaqueRef:6c4904c4-41aa-cc49-c626-481866b4a6cb","OpaqueRef:0c4ba76b-b445-caca-047c-d0dbd9c92973","OpaqueRef:a8bfecf9-7e65-f0b7-f087-a59845369df3","OpaqueRef:2b1dd077-3590-b7cb-e141-0c960de7d0ee","OpaqueRef:4bf590bd-2137-55dd-90cc-1735a84da788","OpaqueRef:bb5242ed-06d6-e8df-b475-df888d527d33","OpaqueRef:882aa08b-b154-b2fb-8d7a-ff5e1121f986","OpaqueRef:1e34f646-0d83-991e-6d57-53abf105526b","OpaqueRef:ef1ab15e-5c19-1c76-1dbb-8ac3e0580f33","OpaqueRef:31a52751-6ebe-5592-af6d-ea64a7272c60","OpaqueRef:814c2dd9-a7c3-b7b7-ecf1-f7f30b2f3125","OpaqueRef:308040cf-181e-3abb-9378-8dac73752bcb","OpaqueRef:b9c90c76-a349-aa8c-e732-21516da712a6","OpaqueRef:64196488-4486-d1d2-88ab-ca36908f966a","OpaqueRef:a2a5b2a7-b9e0-a89b-65a7-dab5b977e250","OpaqueRef:57eb64a6-04db-6995-2a99-3eaf96be5263","OpaqueRef:915e4dab-9537-bfa4-fac9-85addfb3eeac","OpaqueRef:33d71acb-3055-9b64-19e6-11eca4f43e8f","OpaqueRef:46279397-3447-5388-b6c1-2322f68ffd3c","OpaqueRef:6f21d652-38a6-3969-838c-c667c97a37eb","OpaqueRef:4f7a7bae-a4ae-9024-ffd2-3bfe706c266b","OpaqueRef:2ef836d2-b9dd-5a23-c794-2e7589f36be0","OpaqueRef:e0ca9324-e1ad-9179-5282-f7f36641bb1d","OpaqueRef:f5df9029-1e65-e5e2-3c5e-b87aba3a034f","OpaqueRef:067511f8-54b7-de65-b4d9-dfb2089ac41a","OpaqueRef:1bb99abf-a34e-2a07-c87a-871871b84931","OpaqueRef:051d2068-cedb-9155-c92d-1233e9fbc3e5","OpaqueRef:98742ea3-1cde-9b10-60fb-8aac5e8ea5fd","OpaqueRef:b68cf926-2d18-a589-fc01-3899fb72e7f9","OpaqueRef:2fa7f35e-eb7b-3e92-1773-53254df5bac4","OpaqueRef:5dc6aca6-9629-271e-f8fe-e8697e96e830","OpaqueRef:3e520f03-18e0-1db7-a1bf-0688e967b901","OpaqueRef:32978aed-c32d-e3c2-f0ac-634b8bb7e0dc","OpaqueRef:5215045b-f90b-83a3-02ea-d2440c9e0d56","OpaqueRef:84f916d1-f4d8-74a4-cccb-86a085eceb13","OpaqueRef:1a107baf-c2e3-52ca-0b73-148f1514a238","OpaqueRef:929599e4-98c0-722d-54ac-5f2ffc3a73ca","OpaqueRef:1ba238a8-b474-3dff-5974-fab4099a3a7a","OpaqueRef:ca0e5dcb-c5f3-bba0-db79-f9f3b5f3ad4b","OpaqueRef:49e40dbe-751f-51e0-6d70-53c7a7d80b18","OpaqueRef:af6cd91b-d39a-af43-aabf-3f0d477c5e32","OpaqueRef:72183d9d-6b17-543f-d35a-461d3d2bcd28","OpaqueRef:0720d352-4b7b-fff3-45cf-860aee04908f","OpaqueRef:f8375961-adf9-f6f8-f8b2-333ac51d3fe3","OpaqueRef:1fcbc379-fbbb-f702-d1ba-7158bead56df","OpaqueRef:520813ad-5f48-b68b-da3a-36a944d0a2d5","OpaqueRef:1b6d9d1c-8a59-d87f-2920-9fd9fe0dbe1d","OpaqueRef:383340ed-7b65-ec60-3687-cd5b9a22dd4d","OpaqueRef:c6cd9483-96d1-5a4e-8272-58d62903ba13","OpaqueRef:c935c5c6-6224-1650-60e8-8fe70daaa5c4","OpaqueRef:d9b34a9f-bd57-74ef-44ca-d5dc42e857bc","OpaqueRef:603d3545-44ef-8bee-7e48-7a9ec1fe0f4c","OpaqueRef:2ab258fa-f9f0-53ca-1a97-e319259e63d8","OpaqueRef:92828369-5a7f-e0cc-ff8a-20ce4e6a182d","OpaqueRef:d98c92f1-3335-9aca-ecb5-60524be8cedd","OpaqueRef:8a2c5a80-6a75-4b6e-9a15-507e5e2feaef","OpaqueRef:0350282e-6237-8da2-ed67-a8503e1e5213","OpaqueRef:f5ce748e-a2df-70d9-39d3-07c6181cabd1","OpaqueRef:dbf21a59-f453-5f2b-f9ef-2e5ba8c84e51","OpaqueRef:cf2e8f13-038a-7d7b-5021-c881eadac803","OpaqueRef:ff8c2c53-80b5-03a6-88c0-ced5d925bc2f","OpaqueRef:027a3a06-ffc7-fc53-f107-b8ca78294326","OpaqueRef:76bae6c0-4e4b-2dd1-b3ba-66e0b949c13d","OpaqueRef:bf7f941b-03a6-dfab-5f08-5f1d5e046a8d","OpaqueRef:91b38c06-f1f7-acd5-a6f4-5e10e9decb8e","OpaqueRef:a8accf3c-5e68-c1ad-347e-4b14086a0a3c","OpaqueRef:0298a263-16aa-fa51-84d9-bf231b03257c","OpaqueRef:b671a7b9-5c80-c3b2-1f66-7c5b8668c0b8","OpaqueRef:92424d6e-6c8b-e6cf-52f8-c1ecb18ac162","OpaqueRef:b9b352a0-6f8e-854e-71b3-04d31b6483fd","OpaqueRef:e9d70821-4d5b-c6e8-0769-305ea28819df","OpaqueRef:70a45f35-52c8-981e-b5b4-756e9dd422bf","OpaqueRef:29f5163f-f0c4-062e-38a7-e652c0ed5987","OpaqueRef:fa0065df-12b1-d909-9f18-0ee0e5905322","OpaqueRef:0075f8e8-9cd8-3a4f-89e8-f53ff0121590","OpaqueRef:75e54d6a-4fb2-f9dd-f2d4-de95edf0b0e0","OpaqueRef:f1c54063-e84c-fe26-cdf1-4c3aad46c0b0","OpaqueRef:1c8fc301-adcf-4eec-d563-ff7e05e926f3","OpaqueRef:311d974c-0afa-b82c-5a37-5a82f64989c9","OpaqueRef:89e4201d-e7b7-dd2a-702b-9f12ed923649","OpaqueRef:1cd93736-a017-b50b-a7ff-f84557f73b64","OpaqueRef:52e94cd3-f9ef-225b-9d23-133e521e39ec","OpaqueRef:43bd2f40-5b02-5f5f-f2de-3355ce64f08d","OpaqueRef:fa8c8b9e-82c2-1edd-0621-58b876ecb786","OpaqueRef:25efdd5a-5572-0245-6f76-edd4d8ba87f2","OpaqueRef:43f83df9-8b01-dd53-da07-19c763c45316","OpaqueRef:b73723e7-74ed-dae5-a160-a31e2f96f64c","OpaqueRef:3763d099-4a3b-3905-7603-8e5a98dadcc6","OpaqueRef:7a01d196-5bf3-d888-ca53-f7c308d79daa","OpaqueRef:5b8ed78a-2c12-c8e0-c706-c960dcac0e02","OpaqueRef:f5e84d5c-9173-a902-ca07-aaa980e78e7a","OpaqueRef:5c047b76-1c9a-d8be-5b95-3df509f9c875","OpaqueRef:d778a608-bae2-4a80-3c10-c2ee0c3ececc","OpaqueRef:e573799e-51de-10dc-7dd3-a55252fb8971","OpaqueRef:f1eeaf68-e2a9-0e64-3dbe-9ca6e6d76088","OpaqueRef:da79116d-658d-77fa-9595-51e744744bd9","OpaqueRef:7b46c171-b1db-a323-3b76-457ea95372d2","OpaqueRef:363f935d-b9b0-96d5-6286-c7c611a0a65a","OpaqueRef:58a2fe1f-77b3-d2d6-cf26-40af9a1d4f5f","OpaqueRef:2072d2a6-0563-826f-693b-1d3d46c4d4ed","OpaqueRef:ad8c841c-d7b0-29d0-bbfc-e102b0cf29db","OpaqueRef:ef4f9dec-a5cd-1326-745d-6ae2b2cb9b7c","OpaqueRef:fd67acf4-c454-2308-703d-b1c548829599","OpaqueRef:531b14e0-799d-158b-2741-b0722c44ef81","OpaqueRef:8deb8400-477c-d1ed-5e43-3a57cf19fc18","OpaqueRef:bb254b62-2ce5-d18a-ea89-b9951d43540e","OpaqueRef:dac42fca-3f2b-9f12-984c-094ee89b8a3b","OpaqueRef:bee385fd-db51-c95f-5dc9-e0cb27058fe4","OpaqueRef:898a10e9-4929-667d-1f69-6084d82f95f2","OpaqueRef:0093bc43-35e1-4d14-5ae8-0d48a7c7696d","OpaqueRef:8e640d08-58a8-3220-9ad7-2f6ce7ffcb54","OpaqueRef:f5e4f76a-5a4a-71c0-66d2-6b9ebf098fc3","OpaqueRef:a6d058f4-e42b-6f54-7e98-25d842a26157","OpaqueRef:73a0ada7-ab59-3fc1-aca5-d649c7fe52b8","OpaqueRef:4351b221-3862-c22c-d2b0-f4e63dac5151","OpaqueRef:4cf2b236-677b-9ed4-7466-d0e1337a0549","OpaqueRef:b3db5cf5-cf31-a92b-edbf-05fe326e9844","OpaqueRef:e3370dac-0910-8f7f-a68c-aa87ce861519","OpaqueRef:68d3594f-230f-4fb6-5177-fd760bca1be6","OpaqueRef:6ad64869-f5c6-00aa-b2b8-8281cfd24e88","OpaqueRef:bfd6aaa0-e3c7-2b73-47c5-06903a2d09bd","OpaqueRef:dc3df6cd-f17c-73a7-b27d-eb95a8be35ae","OpaqueRef:ab7a8ddb-0a66-957e-b67c-2623919816b3","OpaqueRef:70178e57-b50b-900e-a105-0b50d5961ad2","OpaqueRef:84facb10-a76d-d587-f1b4-fd1bfffbbd13","OpaqueRef:f9a0e6ec-1bac-19b0-8aaf-61c4f8f3e87f","OpaqueRef:5e271507-05bb-a4b4-2aa1-45a1d678a3c3","OpaqueRef:9b129852-5a6b-938a-6657-d7fb8c0fd1d8","OpaqueRef:1e749289-18cf-7c15-dfef-7c563ac409d8","OpaqueRef:182ecb35-daed-9ee8-efc7-cacab112b589","OpaqueRef:13cd1c58-7c1e-1ab4-65ed-9ff82b888688","OpaqueRef:8fc955b6-e97d-5ed5-fbde-3b3216b7f8a0","OpaqueRef:a06fc2d3-81c9-76bd-b9b3-d00973854b22","OpaqueRef:29c7b3bd-cee8-dbf1-bee5-b684dfe0cba2","OpaqueRef:941b5182-310c-b1c2-fbf4-1409241add9a","OpaqueRef:975df00f-053b-2fe4-70ce-41b80b2814f9","OpaqueRef:9bcb81ec-e4b1-1dbd-9ac6-d1ce045e431f","OpaqueRef:6595c05b-14d4-782f-08c1-76d06528b230","OpaqueRef:ca855242-855a-9952-32db-65969a8ce3fb","OpaqueRef:6dfd9693-4e48-6ad0-839e-1c5788befe1b","OpaqueRef:ca8cf9dc-ddab-1305-639a-51d0047802ba","OpaqueRef:bfdf5c96-6ada-a5ef-cc47-ea345940662e","OpaqueRef:f825b844-c7b4-2900-cf4a-5cd059d26dc1","OpaqueRef:1681d655-5c34-3b05-1c48-771660b0f3a6","OpaqueRef:3503fe61-6e9f-f993-a243-f0810918323e","OpaqueRef:53ca7741-71e1-66c1-c42d-6d9351b41551","OpaqueRef:39bad4e7-597f-2ecf-93c6-39b8d945de5d","OpaqueRef:a1421191-fe98-3281-a792-d201a2de2bf6","OpaqueRef:1f9dfeb1-7d99-1409-e6eb-d9522e1ca3d6","OpaqueRef:d535938f-a852-c579-75fd-f7064065ecbb","OpaqueRef:d91aa452-182d-736b-a240-4414fe355a93","OpaqueRef:7397cc86-02af-1ace-9d80-ecdcd9c4de15","OpaqueRef:02d648b1-48f8-6a7a-3051-f984dd7c1c85","OpaqueRef:0b0c7ac7-145f-625d-4c63-97793c187f0a","OpaqueRef:a1a30854-8645-fe8b-81c4-f296f125254a","OpaqueRef:631cd70a-a589-ba49-f1c1-918a54e47ba5","OpaqueRef:ec32a884-e824-e654-e472-1ba82e2db748","OpaqueRef:7d45ebaa-c032-5209-010f-bda83e9995c0","OpaqueRef:13657521-3100-32e7-3d38-a1c0df842c77","OpaqueRef:4a4a9d2b-a7ab-d01a-bb1c-39cbfdce1259","OpaqueRef:55377552-76fe-e589-d4cf-02f64f49f350","OpaqueRef:d36bf25c-cffc-3785-e9a4-1d6dd826cd03","OpaqueRef:97b2ea1f-c272-bbfa-4e1b-ed567d0cc9b3","OpaqueRef:cf9b90c9-439b-c33c-c4eb-86e8b1bf4157","OpaqueRef:53e3bde4-ef9a-5933-62c6-89a992f399b0","OpaqueRef:216b0366-cd42-24db-57b1-3c8fce70e4ba","OpaqueRef:5beceb5c-5880-09dd-3eba-d5133d463f9b","OpaqueRef:7bd495ef-abbe-3363-4f68-64a70eed83eb","OpaqueRef:61fbb0bd-b453-3369-98a3-53f4f8a7fe6c","OpaqueRef:00056679-3372-9b8e-6488-10d423edb0ad","OpaqueRef:64067282-0137-c32d-3ae4-7b20b6a93ad1","OpaqueRef:97015ed2-cf9c-9ff4-9d34-b1ae9a377788","OpaqueRef:c492097b-20fb-0584-6559-893d4d35c82d","OpaqueRef:de3c3005-8901-9213-2c61-45e6d489c801","OpaqueRef:0fd4e192-6082-738e-c2c5-27cf2cb5f467","OpaqueRef:3f4867e1-9401-bc2a-a260-5561bfe8d08c","OpaqueRef:3ad57875-8d33-5adf-7184-24f4df2b6981","OpaqueRef:5c07d45f-d9f5-207e-1e3e-70c0b5abc69b","OpaqueRef:73ba289d-8cab-51d5-a8f6-ae42be46b61c","OpaqueRef:88447749-f966-bae0-a649-ad12c1391cc2","OpaqueRef:9799e20d-f5ed-6371-1fd7-6ad3fb1df729","OpaqueRef:b06ba59a-e556-7f5c-902a-871a8004c149","OpaqueRef:6eb23ab4-da27-9d9b-3c1d-1bf27c1ca6b2","OpaqueRef:522142a2-c5ce-4095-85b3-13bf2ca36175","OpaqueRef:2fa043de-5e00-c856-7ceb-0b0a266f0a4c","OpaqueRef:7356e67b-7806-3749-5459-4409094561d0","OpaqueRef:e18acdf2-b7ed-9d85-2aad-10e4a767b62e","OpaqueRef:81ee6b76-da69-18b4-18b1-f4e09aa1b119","OpaqueRef:61080452-d30d-cfed-7985-400322d30d53","OpaqueRef:bb7587c3-a0d4-46e4-af05-6ed1cc33d23b","OpaqueRef:1cf6f512-a2d7-1189-1e32-3a1e58c1e66f","OpaqueRef:a04e6272-743e-809b-dc4b-a2edd6fdeb0b","OpaqueRef:5f3a7f4d-29e6-df00-2bd0-6a16b0fef414","OpaqueRef:6ed0eebe-e588-e5da-a6c5-c24353ce5d42","OpaqueRef:e46476eb-f04e-f11e-ea3c-88dbe418ccb9","OpaqueRef:d6b34164-85a4-cd30-0470-208c285eadb9","OpaqueRef:cb1caf20-8fea-fc40-c45f-7ed34f3a17bf","OpaqueRef:9c3da382-c08c-24e4-6f06-66fdac2ecbd5","OpaqueRef:e9b01f04-bfbc-8d01-dd70-6e9298c449f0","OpaqueRef:57d49215-72b9-ca21-6247-989c7593e029","OpaqueRef:4f538c4c-a6f2-5ac5-f80c-7290a5ad4c55","OpaqueRef:e11f4509-d43f-a0ac-ef89-596c271c91e1","OpaqueRef:dc84c131-adf9-d460-4988-294d88b46924","OpaqueRef:f559123e-c887-6ab7-49cb-675b315d69d7","OpaqueRef:9de70f7b-12d1-6625-5970-894335e62431","OpaqueRef:7c2f2761-86e0-d176-8791-cccfe25d8700","OpaqueRef:e4fd9189-1c6e-8b2d-690b-8f7923b2477e","OpaqueRef:1069a4f0-17e8-cde0-bf04-ffa08d2878ea","OpaqueRef:3d8acc2e-3bf1-9245-35dd-493184d88770","OpaqueRef:c41cce49-6fcf-44c2-1c59-99d127686bff","OpaqueRef:03c65989-d970-28e1-2d72-8cf1ffb06a95","OpaqueRef:2a8ae027-e709-28ac-8de5-56adc284daa6","OpaqueRef:3eded99d-19e8-b6ca-435c-7b6f2b220b3c","OpaqueRef:c58d6c90-98ef-d44f-f4d4-47bbfebf6a28","OpaqueRef:3a08550d-abba-d9d6-bcf3-df495332dc7f","OpaqueRef:396ee7a7-5e5c-9399-d89a-427109e6ab21","OpaqueRef:cfbc0c25-0514-0a40-1c57-9e063667d33e","OpaqueRef:a6d34497-1418-7a05-f792-60f8cbd8f7c5","OpaqueRef:6fcc710b-6217-2c38-f2bf-2455728b2b0d","OpaqueRef:805b2422-565d-0957-0898-5d5a078ee501","OpaqueRef:3d022c5c-d53d-333c-706d-c175777da30c","OpaqueRef:09593fa1-1b87-1d23-8e61-bf79b93236fc","OpaqueRef:3cc87704-357e-0ea7-e918-dcae6f73fa8d","OpaqueRef:49bc2875-5acd-548c-8823-bd2c6c2322d2","OpaqueRef:ac3fcf2e-8995-8f1b-3849-e897d1eaa4ae","OpaqueRef:57fb16f4-51fc-7798-1845-070ca26ba746","OpaqueRef:544ea348-b989-8d3e-6042-13999626c5e0","OpaqueRef:34c8cdd1-6c69-506d-2e10-1a051d5f7d60","OpaqueRef:db6de8b4-bfd5-c3a5-905f-94106bb5a2ab","OpaqueRef:c1207e93-3ffe-9166-4ff7-80b763788417","OpaqueRef:2804a382-939d-876d-c50a-dc18d199bfe8","OpaqueRef:4b182675-bbcd-8a69-3671-5803cb22b481","OpaqueRef:e01a098d-e8fc-81fa-764e-c07a342d219a","OpaqueRef:2036d54b-2179-ce69-a922-9b2d5cce6916","OpaqueRef:58e3edff-51a7-7143-020c-11e3821c18cf","OpaqueRef:283982da-ebce-2cc4-faeb-4bee137761bc","OpaqueRef:f17f15a8-882f-380a-1e75-7074e4e51e1e","OpaqueRef:d6271e34-14a8-85dd-28dd-f090b63ff588","OpaqueRef:499f5734-a8d4-4c55-83af-f0b1e2a9d67e","OpaqueRef:89e757f3-4619-1fe9-1b1b-3afdc986af84","OpaqueRef:62801603-a12a-b8ae-eb7a-0890725c7310","OpaqueRef:8673c2e3-429c-7599-35e6-e9a804892d2a","OpaqueRef:3ee06801-74e6-08cd-b237-7636668ced4f","OpaqueRef:af9bf6e8-720f-8eba-b583-5ee68d14de90","OpaqueRef:a212b9b8-aa8a-6243-180e-4270a46cec2f","OpaqueRef:a1492f6d-0469-f57f-074a-88453672a2de","OpaqueRef:e756d67d-3c2b-a489-3c3e-763748f886e4","OpaqueRef:39b6f8c8-bfbf-b629-5d92-6594e516730a","OpaqueRef:5c1423bc-7a5b-2534-ba37-295c7186dcd7","OpaqueRef:19b78c71-2cdb-8e28-6211-047d04e287dd","OpaqueRef:52a2adf9-049b-7a18-c484-87ac5d72ad97","OpaqueRef:8f70e9d9-bd3c-93e3-173a-49afe26cf566","OpaqueRef:e14060f6-a3a3-d143-5b31-560944959d13","OpaqueRef:47f88d02-ac99-2cdb-418c-c9e2e9ce7bf8","OpaqueRef:91dea557-fa82-8092-0fda-fe2a011642a3","OpaqueRef:aded9fab-67cb-95b8-83f7-4348145f15d8","OpaqueRef:13e4fa9b-f6b2-1004-c292-596ef96c91a2","OpaqueRef:097acb71-bfbc-544c-6510-425fbc5bf0c5","OpaqueRef:ba181e9c-bb3f-a159-54b8-0c408b51b702","OpaqueRef:8f7d7db9-4e24-7316-f50f-56e7e62efddc","OpaqueRef:991d65d4-eb8c-9dd0-f0cf-9cae1c91d90c","OpaqueRef:7f956af8-0126-4429-cc23-033090d5a028","OpaqueRef:edaec0ce-7f5d-2886-0101-5adf8a69a6e7","OpaqueRef:9362d5c2-3f86-50f3-d68a-2949915fab05","OpaqueRef:e638b68d-cf4a-f81d-64c9-df34168b2137","OpaqueRef:c18535f5-924a-5a11-7522-c8ba88f23eac","OpaqueRef:acf9e287-4110-4a5a-c753-7925bb43678f","OpaqueRef:d7435e71-c22c-3fdd-bbcf-33849cc039c3","OpaqueRef:3057ba41-6ab0-21bb-c4b9-2a53ded43c5a","OpaqueRef:e69c0e91-d962-f102-9200-5b00d7ff495a","OpaqueRef:784956f0-eb8f-e687-118f-5ee8fabc47dd","OpaqueRef:d0e2be89-4c37-3974-149e-c06d8358e0be","OpaqueRef:c317c9dd-000f-61e2-91f4-cafc36cc3f65","OpaqueRef:dc719910-a701-5800-fe16-18e3cb4fc00e","OpaqueRef:0dfef1da-7988-b6a2-0752-20b8dfcad6b5","OpaqueRef:a7f5635e-754b-2c47-0182-b2cd6eaa6a4c","OpaqueRef:21c41bf0-8c5e-b6de-5dc7-f71cb751a430","OpaqueRef:37548ef6-abc2-9f49-7fd5-efe65a5b5448","OpaqueRef:5cc2dbe3-4c16-8f9f-ce59-2bd3a60fc044","OpaqueRef:6682964a-92f7-ece2-30b1-583be0f69b15","OpaqueRef:eb0f1687-b443-2873-e3c5-3464197a2a50","OpaqueRef:ca439f57-3fa8-ee93-f2a5-5d4f72cbb907","OpaqueRef:28069750-7807-2fa6-9bc2-bae7456f5de9","OpaqueRef:a988b203-87ad-2774-daff-abb02c8b8242","OpaqueRef:3a933cb7-62fd-7929-3052-b8f7caffc9c1","OpaqueRef:d68b60f7-6618-0e76-a3b7-226f3c30b789","OpaqueRef:450af311-5669-e4c7-6ca3-b3350172eafb","OpaqueRef:9fb5a1d6-e53b-24af-bb7c-49a942f0bc65","OpaqueRef:ad6b4de5-bb53-c27c-f34a-033542cbcf61","OpaqueRef:cf8f0a82-e845-5f00-68b3-d0905d31e8be","OpaqueRef:fc7cd54b-2fde-4fe7-4caa-e152930fed06","OpaqueRef:d619c5a5-074a-a015-1c1d-a0a0e62bfaa5","OpaqueRef:84d71586-5ce8-2364-c74b-0017c93b82b2","OpaqueRef:0e28a706-8960-58a7-4f9d-c3b0eea64a0a","OpaqueRef:e3637139-7f57-56b3-b8e8-4fd736f11588","OpaqueRef:164a66c7-e0b0-7fd7-ccd3-d13042353c78","OpaqueRef:88fc5a8b-e5f3-612f-7a32-e5a651abd04b","OpaqueRef:0ed8495c-b53e-7951-d041-14df9605e6f8","OpaqueRef:88f8cb5b-b92e-0ab4-307d-2ed4ea447475","OpaqueRef:8d328936-9d02-d5de-239c-a5ac7683fe55","OpaqueRef:832c3695-97bc-0149-a67b-72168f3399ad","OpaqueRef:4ac0e45c-dfd2-201f-80ea-ebfd8d71427b","OpaqueRef:efb7cbd4-61f4-0486-ddf7-7b2d7b75eaf0","OpaqueRef:0e80dc41-4ea3-d605-ee1c-80287a3bac23","OpaqueRef:7a68af31-9342-776f-91f6-ed3e1fe3b25e","OpaqueRef:4c00e8eb-9e93-8e7c-ae07-284d760310fa","OpaqueRef:e7d108ee-2082-98c2-acb6-5884f39f3056","OpaqueRef:62084664-4e15-5ca5-99eb-00007ed70717","OpaqueRef:f2df7036-f418-a415-ddca-d31ba6ff611e","OpaqueRef:4b368ad8-3eec-31b3-5fb0-d1070507cfd0","OpaqueRef:b7db64ab-97ce-4dfb-45d7-f505756fe4a8","OpaqueRef:25d4aaa3-582d-7e6e-eb43-8fba9c42568c","OpaqueRef:ff776240-dbd0-9ef8-f34f-42c85cf01b3a","OpaqueRef:559b520f-dcef-e6b3-6a21-3a74d84d3fa8","OpaqueRef:1a37ccfd-f500-bd50-bb25-f20411bfbb35","OpaqueRef:086121bb-2bba-06e9-bab2-6b7414b0e4eb","OpaqueRef:bb1cdcf0-b311-780a-0ef3-f513d856d37c","OpaqueRef:46e0c783-d1a0-5ef3-18ff-b10089c66fce","OpaqueRef:6d7ab29d-bf4b-8fb0-5b6f-d988b1e17a60","OpaqueRef:051ea96b-6608-7758-cc1a-70c7e474ad7f","OpaqueRef:8e7d8b4d-8ffb-c803-5d00-49a3d08d43fc","OpaqueRef:2fd85a90-74c9-15e6-d4f7-e59c7f584ac4","OpaqueRef:54cb0e64-7459-04bb-621b-4f16f42ba21f","OpaqueRef:9e2e9082-8361-adb3-1e6b-51178368e9a5","OpaqueRef:f1ab04b2-6571-fff1-66c0-720ca6c50bfe","OpaqueRef:616109ba-d73f-ad1f-a4ac-4a1454b7b742","OpaqueRef:8295c108-ca0f-bc2e-1d77-d580d9dcbdff","OpaqueRef:65e61767-fa64-53ff-0056-6491eaec7d1c","OpaqueRef:b2dc1fd3-b84c-d045-efe6-174954f53ad0","OpaqueRef:a534c226-3cce-06b6-3a28-cbf339c0e385","OpaqueRef:a576f048-226e-b605-b15d-f388fd903210","OpaqueRef:676b455a-f9eb-78e3-a1ef-a1ea437f6110","OpaqueRef:3d4411cf-b855-6140-b1cd-1c6b7a0ebedd","OpaqueRef:a0184446-8631-4833-3651-61ca4293ca60","OpaqueRef:b277f808-66e4-fd82-2300-bfae51e59679","OpaqueRef:babc2b36-7a11-3b3d-03da-fc3130f49a35","OpaqueRef:2a3d6942-c2df-0472-5241-52530708b8c7","OpaqueRef:7e23cac0-90ad-45ba-9a62-c7b6a6e4002c","OpaqueRef:b8f9b23f-65b1-75c0-289b-e6e2872ee81d","OpaqueRef:2adc8291-5288-6526-87a0-0b15ec4ca4fa","OpaqueRef:6fc9e87d-86a3-2cf4-dd26-017c20571a05","OpaqueRef:b0d0708d-79a0-7f33-2b39-4e2a59000bbf","OpaqueRef:4b284b33-faf7-ba98-7e68-6a53191fdb97","OpaqueRef:01844316-a78d-e6f9-a7b7-53a939235f5d","OpaqueRef:b1d61197-b0bf-cb30-2120-627c956a97f7","OpaqueRef:74ef5702-8a42-a7a6-8951-a28ae3b64197","OpaqueRef:ab2230c7-8d4b-357d-6a26-62f7c9b0bb27","OpaqueRef:ce3646e1-704b-6b7e-f468-45a009bec12d","OpaqueRef:c911cfca-5100-8446-b631-2d6f3861350c","OpaqueRef:f3ba88dc-9ccd-d9d9-71ee-c874040f0fc4","OpaqueRef:883d4710-6475-244f-cce7-d17282265fdc","OpaqueRef:56a2f957-6b1b-7d8d-00f6-931d4574f63b","OpaqueRef:bd6f9aa9-3f9c-8e22-7c2f-69f38bd6472f","OpaqueRef:ba6f9682-ea22-caf0-ea6a-cfad6774390d","OpaqueRef:04ac5338-b19b-6833-ed3c-b992d6ef8328","OpaqueRef:917258fe-6427-e960-98e8-9f3bbd88bd22","OpaqueRef:2de23583-b3f1-6e39-4bd9-4c7bc7afc977","OpaqueRef:46c7e8d5-56f3-060f-2995-2d969d216c2b","OpaqueRef:06f0d6d5-0fd9-f30d-9b62-0cd0c59191b5","OpaqueRef:c2bc934e-8ece-de2e-3288-7ccbab1e257d","OpaqueRef:e0ec22dc-e8f1-5f2f-23d2-5ab50665f83a","OpaqueRef:3b5deb71-ec32-2485-4913-089fa04f1ace","OpaqueRef:c7b868fb-53dd-4ff6-9b83-fe096e910d82","OpaqueRef:3516a06e-5a67-7f1f-4c83-40b3d7e914f0","OpaqueRef:439dce99-b067-9c88-7a0a-06e581f8f502","OpaqueRef:8e7a8bd9-9ac6-a612-477a-12c33c6af2d3","OpaqueRef:2cc96f79-52aa-dafc-494e-5d04eb63b66e","OpaqueRef:2966c4db-3b8e-7257-734f-0969cf20819d","OpaqueRef:f2ec9f37-10d9-7d1b-510a-4415578358ec","OpaqueRef:56fb3052-8b86-22ad-c7fc-b2526f97e6b7","OpaqueRef:312ca834-68b2-6c0c-7608-9fa37ab92a80","OpaqueRef:de6644f5-642f-de4c-0a6c-643305b2d412","OpaqueRef:1e09548b-2543-cf4f-f3c4-5ccf24e7f34a","OpaqueRef:532b0c67-7dc7-8ea3-2e90-ed2db7b2a1db","OpaqueRef:b36dd591-9707-22a9-dd2f-f4ace0f16c2f","OpaqueRef:73dcfb11-02cd-8963-408b-dad8c5e273f9","OpaqueRef:4422e4c7-9256-2554-f5cd-20e747e332de","OpaqueRef:18dad7b9-c57e-c98d-7d17-f0bf1d7e06ab","OpaqueRef:b843bef9-a511-6d24-6f3c-35213ab63e72","OpaqueRef:99348363-3c41-3555-2ea6-69f9286ab01f","OpaqueRef:2a640dcd-ecb7-7c13-f614-5ece445d6af6","OpaqueRef:67ee9e01-bacd-05d3-a6f6-d7e36b2e3615","OpaqueRef:0b3def91-9eba-d648-87f7-fd46891784ee","OpaqueRef:3a5fc160-ae59-bc77-0753-e356a3ad9b90","OpaqueRef:e5c75e3c-d11e-b898-e9e7-330a9199bf1f","OpaqueRef:38ef0f15-9dd4-29bd-cee4-b90a4f40b781","OpaqueRef:6d1d191d-e4b5-6ea6-9fa1-77be26dac4b6","OpaqueRef:412f975b-5a60-92d0-a171-2bedf499c0f5","OpaqueRef:4e5603db-37bc-eb71-1024-e2f12969924c","OpaqueRef:2a010f2e-db5a-5674-cd2c-86c314edff3a","OpaqueRef:c55b00c9-0dd4-cfa7-8c15-9f45566790eb","OpaqueRef:1d31bdb6-108a-c58f-726e-698a3ae8a4c2","OpaqueRef:229e72e3-bb39-e68e-870a-66da28febf25","OpaqueRef:a9e18770-38e2-e1a7-8ae0-f084cb86b223","OpaqueRef:7488f812-0cd8-7253-6fee-f339b217611a","OpaqueRef:7105e48b-21af-8085-53ef-cbba8e982ffa","OpaqueRef:bc9320f4-99a1-bb52-5f0a-53b712382e92","OpaqueRef:ca85f1e0-c38c-287e-8327-c07136a32bbd","OpaqueRef:d4103e70-a294-550e-2c8f-8cc136aaad6e","OpaqueRef:dc80d07c-da36-8b15-91a4-92ca16f288bb","OpaqueRef:51051d7b-371a-7f10-d045-a050f70f2474","OpaqueRef:4e914b35-ddeb-12b2-31fd-e2fbcbec010d","OpaqueRef:588d746c-9967-8e54-df7e-a825bc64f73a","OpaqueRef:e9a7fba1-deec-3478-2098-26b97828c750","OpaqueRef:93dea749-bb50-7546-5ecb-90cfbf26165f","OpaqueRef:b37bf5ec-05a4-e2bb-1586-d973d208a2f8","OpaqueRef:9d51a9e7-b720-b88e-5240-256b52701685","OpaqueRef:a00ac9c0-8960-1e84-c638-c9858dfa4101","OpaqueRef:0c82bef6-ba72-0bee-b924-84feb84b2e77","OpaqueRef:6753d0e3-8e17-9f9d-cb5f-9642c2b7685d","OpaqueRef:d70b794c-05dc-77a5-b720-51a905de3f2b","OpaqueRef:0462f07f-cd50-abd0-7965-0ec55f5a126b","OpaqueRef:a28dd0cb-fcd5-33bd-7657-278e5f653471","OpaqueRef:35767a4f-af9a-af62-5f51-ed250f684d25","OpaqueRef:2605b766-9cb9-cdb1-53e6-2431e711af44","OpaqueRef:f5b86d13-b503-2c7a-83cc-b54896afb752","OpaqueRef:266d1cf3-ea34-44ba-fc97-cf4cd876d7c8","OpaqueRef:2cdb0f4e-685a-814d-03e5-19c4fbe5aa64","OpaqueRef:a2f2b2b8-188f-f022-69bf-fa443d89bb58","OpaqueRef:a4c9dc80-0070-0067-a1d3-339b5081adc0","OpaqueRef:f6184e4a-0be4-97e7-6db6-bced99fcceff","OpaqueRef:771f7157-33cd-a8e1-f5a7-ae23af63c750","OpaqueRef:7f545d78-e772-030f-2e95-7d3b998d3000","OpaqueRef:b99da77a-522d-4bff-9013-ae981fceda83","OpaqueRef:0a01091f-7913-54d3-94b5-3ef26f90b0f9","OpaqueRef:dfc8a1f1-60c9-373b-c6a3-56c0712754a7","OpaqueRef:e3e174f6-5c33-6385-bd9b-09213a73e701","OpaqueRef:f1fc3e4c-3f63-876c-f667-2c06a3321e7c","OpaqueRef:3230d646-65ff-59d1-0400-5f58231c0664","OpaqueRef:68130225-5eb6-b36c-43f5-c81acaba8b68","OpaqueRef:9ad29a74-1eec-8937-697a-ba3679e4f48d","OpaqueRef:3fa0a161-a6ab-4adc-3749-2aab29e2b445","OpaqueRef:1cc4a88b-84b5-9e1d-4b63-193c7cb2e93e","OpaqueRef:924d34e6-51df-0ef3-fdd7-065a11af80c4","OpaqueRef:ccc6e989-a50d-3530-743f-d13e7f05e5dd","OpaqueRef:bbdc09c5-8729-4aae-9945-66b292cf2aa1","OpaqueRef:62c6badc-ea63-3832-3641-cd0eccca0304","OpaqueRef:18c1913b-2356-df02-11ce-ffd2da0e4170","OpaqueRef:e522fa0c-7c50-cc59-c88d-0dedc9aac2aa","OpaqueRef:a5bca0b7-88eb-7892-b1ec-e328146be11a","OpaqueRef:57003b7e-6b62-44ed-9efa-d02a2c73946b","OpaqueRef:58fd2438-7368-a4de-3b67-e5ad53708171","OpaqueRef:baf1360e-2dc9-be3d-08bf-252994e78ccd","OpaqueRef:8618ece2-3298-2490-19dc-2e951f388f1d","OpaqueRef:acfb9201-52d6-3881-04f4-83ae8376300e","OpaqueRef:fa7a9290-f86a-2185-3c2e-9a4c5ad746ae","OpaqueRef:092b2548-6da4-7838-9b3d-af0860032580","OpaqueRef:4cfbb76c-adc2-c543-66fc-b1239cc2674d","OpaqueRef:a8137b60-e684-3a89-3c7d-70365d9f8465","OpaqueRef:edd8481c-3712-064c-e444-2a1f20a31aeb","OpaqueRef:566ee717-dd27-c672-e4ea-2f0796acd117","OpaqueRef:4df8d39a-3fda-a201-f792-c727dd2ffa60","OpaqueRef:0f5f27b8-5098-237f-e2b5-14c9512fb0d6","OpaqueRef:360c10c1-5edb-2dba-9e8e-f1440e9a948c","OpaqueRef:4950f5c0-e772-3c03-61a0-6b00f291448d","OpaqueRef:ad699ad2-4125-fa0c-2869-8b6640360731","OpaqueRef:fa8993fb-524f-eb9a-641d-06b2099ecb82","OpaqueRef:a973885d-511e-de2a-00ef-18ed6acf3021","OpaqueRef:73e1bedc-0afc-64a1-ac4c-a58f118bbdc6","OpaqueRef:efb93f2e-bf72-db7b-d36a-1be03c962cec","OpaqueRef:0ec88acf-cbb0-d4d3-7c8b-f5f320e6f0ec","OpaqueRef:e8872a7a-d9f2-2a9c-1e4e-ed2e94612f6b","OpaqueRef:19dd9241-f613-057e-d933-dfc254e20a6b","OpaqueRef:5312dde5-afa4-fafe-a3a4-a9729b47b80b","OpaqueRef:ad2b02d4-5928-4232-df0e-a7fdebd8fb62","OpaqueRef:f2370df8-242f-0ca6-ec92-868200d68c34","OpaqueRef:eaadf2fc-0fa1-892f-b20c-e3b8ac502e6b","OpaqueRef:ed243ad4-497a-52e3-d46b-945f2e4156f3","OpaqueRef:4bb206e0-df39-3bb0-2402-e4d584e6861d","OpaqueRef:ef6fd636-89c1-1e1f-157f-284e8a450324","OpaqueRef:5ff8b980-e213-e1f0-dbda-b5abf2bbe72f","OpaqueRef:c7734155-0a75-ac54-6f7c-74a8da933455","OpaqueRef:eadc7ba0-7efe-5e4c-7b78-482519be7522","OpaqueRef:25927722-f11f-2805-9006-8fa441b22745","OpaqueRef:804810ef-bdde-04af-addf-31ac6e8eb8ff","OpaqueRef:f8d1620b-4d3b-ed60-af3d-6a13a59d65e4","OpaqueRef:325bbd68-d003-fcb2-bfa5-3745d5c7d4ef","OpaqueRef:f5b632a4-7a1a-576c-e9cc-0ba84cf1071b","OpaqueRef:8b3775f3-de8a-7191-05be-d652c36aa494","OpaqueRef:fae90cea-ef53-bc8b-93d3-c0c48384feff","OpaqueRef:6e3cc91d-fe57-6857-c385-343d09c1a113","OpaqueRef:710cfeb3-2a8d-27ed-c208-78f2db5f79a8","OpaqueRef:0552455f-5aa0-3217-1818-9c0729fe8d6f","OpaqueRef:06c9a83e-f5d7-801c-cef9-f564eada350a","OpaqueRef:3acba506-ce1a-b39b-b637-3731b50880e9","OpaqueRef:8570df6d-9f81-8bc6-00ff-4c6c1f84def6","OpaqueRef:4894cd8b-7d71-407e-2852-1b7f4aa166cf","OpaqueRef:311d925a-6070-271d-a724-0948552a654f","OpaqueRef:44d764dd-95db-e4d9-4cf7-1250f3ca601d","OpaqueRef:937b2b79-813a-a286-cbeb-da09e3cf4c90","OpaqueRef:44d3a92c-7e3c-14ba-8b7e-faf5ff27b02a","OpaqueRef:ab3a2fc2-a70b-9122-8c6c-a51f7c11f438","OpaqueRef:18c32fa8-b18f-6a28-5b40-12f9077d7661","OpaqueRef:92967fef-88ab-15e4-f16c-9f042b3191f4","OpaqueRef:a3f5b9a0-e36f-41d8-65dc-8f7bd095293b","OpaqueRef:9986f58f-773c-c701-6b97-7e99b0135124","OpaqueRef:d450902b-de9f-7867-c98c-f912e6a80cce","OpaqueRef:7936813a-24d4-e749-f89a-dec7286a0b99","OpaqueRef:81239256-3acb-c6e7-b689-9eb4e54c9956","OpaqueRef:745095db-fdd8-7025-f9b3-839b0fa846f9","OpaqueRef:7187f8da-4c69-cc67-9718-1f98b825c1ea","OpaqueRef:601664bc-64ea-312f-6bc1-543ca1a0177c","OpaqueRef:729d8740-7096-6a5c-49dc-6c4cec96500f","OpaqueRef:d4ab22c9-f134-2607-284a-56381333719b","OpaqueRef:2a06d13d-ff22-2dc7-98a6-a97c7c723481","OpaqueRef:a8f2a88e-21e0-2c4a-2b47-205e8d3d3b44","OpaqueRef:a14d9994-ac84-07cd-e0c3-621d7c92f0aa","OpaqueRef:56bc2594-ff11-2fa7-8f46-18178bd1010e","OpaqueRef:396bfd0b-b63b-449b-75e0-f4998ed9ea1f","OpaqueRef:7a90825c-43d6-122c-0805-408ff98a5064","OpaqueRef:af48eae9-9c88-9a3d-e57a-46250c33abf8","OpaqueRef:174af546-476b-1579-44ef-07346dbbe4b1","OpaqueRef:2aa40daa-f640-4198-a8b2-20fdfd44947f","OpaqueRef:7555a731-bf5e-2494-cf68-90a0d7594b06","OpaqueRef:c3ae01b1-a370-4ec3-d91e-4d8533a89f86","OpaqueRef:edac34a6-33d6-77bb-28f4-420479c713a2","OpaqueRef:4210bb3f-296a-873d-f592-9a9cf531b0b2","OpaqueRef:bcd53d79-34a2-71df-29e1-c7e72dfca15e","OpaqueRef:7762becd-462e-6753-2b38-d70dc62e2c29","OpaqueRef:3f2d95ef-f35a-fb7f-ac83-1e31d28eb587","OpaqueRef:79e264ba-b809-161d-44cf-f628b44dea1a","OpaqueRef:2d6b6f99-d4ff-f561-6f39-1a2361b296b5","OpaqueRef:57b4a7f4-2b31-e7dc-3698-cfc7ab53d6ec","OpaqueRef:b6e74e20-a86a-c58b-67e6-8d481d0309cc","OpaqueRef:0d2542ab-7612-5824-4c0b-a77676fe1df9","OpaqueRef:eb56bf07-27a0-6d21-b864-90d65355a7c6","OpaqueRef:a9077c51-15e4-6c48-46d6-b37841c7edf4","OpaqueRef:7b14057e-435b-da4a-f335-5710072124bb","OpaqueRef:a35e33f5-26cf-7f6f-7bee-2e69c34448f0","OpaqueRef:d5c12717-98ae-ea62-287b-ae5de38e2c4b","OpaqueRef:b7b71954-9351-702b-765d-1e3757e2da15","OpaqueRef:9b1c0f58-1625-a13d-413a-5260b57607ca","OpaqueRef:ad0c4088-5db2-3676-22ca-b679662173da","OpaqueRef:d83d3500-e310-848d-ba03-1601caced032","OpaqueRef:fe5d5a1a-b9ae-a0f4-2d61-50416f161d60","OpaqueRef:a95d21fa-7e04-1468-b0dc-27d81e39c09c","OpaqueRef:37f9a250-fd67-56db-e2c1-7f7c7abfd9fb","OpaqueRef:a5ac4a15-20df-40aa-1d01-c668e8746d7b","OpaqueRef:93340db9-eacc-0e12-9151-854745d49cf7","OpaqueRef:9dd43118-a078-1317-8a87-83ebed088133","OpaqueRef:63b9ae45-0e59-c1e6-d3dd-f596860071a2","OpaqueRef:67af93c7-dfb9-98ce-ccbf-80fb7e828e27","OpaqueRef:23af0178-71be-1c09-5f09-4eeb59279dec","OpaqueRef:738acc9f-a221-a9c7-c008-4f324a609677","OpaqueRef:6467bf45-4441-2fb7-299d-da6dc598310b","OpaqueRef:5cd9ce80-b26e-54b1-0dfb-07431f9fde11","OpaqueRef:ef373d6d-ccef-defc-69de-d76a06ec27ff","OpaqueRef:dd9035db-7349-697a-84aa-6aeef6601c43","OpaqueRef:a1f5ef8e-8116-2ead-ce75-4ff9cdeb6fbe","OpaqueRef:c614ec0d-cd31-33ba-21b3-43a6c498d0fc","OpaqueRef:34e576e5-27b1-46b3-bf30-25a663835fec","OpaqueRef:0620c7fe-5acd-626f-cd9d-79997b854a2d","OpaqueRef:f6607652-9394-52ba-ced3-f360b1257e6f","OpaqueRef:5d76223e-2db4-b433-f8c2-cb2a5d864efa","OpaqueRef:9b8f4aa3-bfc2-83c8-3667-cd99d8a752ef","OpaqueRef:071234dc-bb28-960b-bb7c-ee4ece319f5a","OpaqueRef:27378730-81dd-d327-639d-17495c264bc0","OpaqueRef:f4c9785a-e9b7-c6dc-ef82-4b7d23ffc103","OpaqueRef:4d21470f-106f-4e87-5109-1054f40a15e1","OpaqueRef:8cbe8380-7d8b-e296-35f5-7941ad540728","OpaqueRef:26a2c50f-a17d-dea1-7046-e09d4e4beb2d","OpaqueRef:95d99f45-12d3-b0d4-5b95-3cf4e910c7c1","OpaqueRef:42d39347-68df-86c9-065c-6f95e1a28c1c","OpaqueRef:a92bae06-cfdf-6655-38c6-2c24b0da778d","OpaqueRef:874f163d-dd0a-fa0f-0df5-166597eff5bc","OpaqueRef:ee185dea-ea4d-e49e-ad96-4072c0a84f58","OpaqueRef:123a5e0e-5e9c-ba9d-0b27-c2c84732402e","OpaqueRef:52fd6dc6-5ca6-9fa3-a47e-5650412665ab","OpaqueRef:a954a18e-5251-f3c7-1bcc-0a7e3e532d13","OpaqueRef:b2bf107a-c001-a3f5-0f11-d9b414b636e9","OpaqueRef:d5838e96-6bc7-b825-9b44-1d0fbbd4cd6d","OpaqueRef:cfaaa17f-391d-2412-ccd2-afab25ccab6d","OpaqueRef:bd37900a-e6b0-90df-dabf-871311560070","OpaqueRef:d237f558-5bcd-610e-0028-4fe71d0ac595","OpaqueRef:703ca7dc-8dcc-6df0-2473-7337caa1c17b","OpaqueRef:bac565df-939b-c536-dfc4-35ea64950ad1","OpaqueRef:d19eb620-7260-c930-6729-682529ab1d12","OpaqueRef:e03eac42-56e7-135f-0afb-e5987f110687","OpaqueRef:342236c6-8d38-20f7-1e06-1a44e75513b0","OpaqueRef:368457f6-8b86-9492-2566-cfbf72c8598d","OpaqueRef:009b40cc-5ac3-4e74-251b-439ae33a1237","OpaqueRef:1ee62327-b580-693a-9635-78d27050c1b6","OpaqueRef:657ed104-a6cf-c0f5-1813-48f0bb17da4e","OpaqueRef:01a743e5-a3b5-f318-7228-4ce8fbcc6662","OpaqueRef:019dc5fb-c3ad-90db-7e97-160d3fcf1970","OpaqueRef:70276941-c1fc-66ff-97b9-6a2f0e4417c2","OpaqueRef:fe6b159e-02e4-9220-217f-f7530ac32810","OpaqueRef:765c29b0-1ca4-48cd-1222-4eeb6655a7d7","OpaqueRef:36d74e5e-a510-68e7-45b1-ad0a7c5f47c1","OpaqueRef:6d0a3227-0550-f146-7aac-34259c56d99e","OpaqueRef:86989975-8b09-5f82-f068-64f59f226978","OpaqueRef:dfa26a90-9ce7-1147-7ddb-d79dd9d9c105","OpaqueRef:e6d1f5c8-bc75-ee1d-7dbe-894d4a9ca4fd","OpaqueRef:9c4cc775-613a-fa97-0912-aa44311671b9","OpaqueRef:ebb0b010-c619-1fcf-2519-a386d57161bf","OpaqueRef:96a4dd40-ee88-1987-3286-55c08bf66316","OpaqueRef:de4a5cb5-c8d9-3319-92bb-a0a0f560067e","OpaqueRef:9c0443d4-538d-c2ef-af03-55f9e033f6b1","OpaqueRef:0e630687-91e7-fb14-32b8-d7813d4dd5ac","OpaqueRef:024ec9db-e7f1-de4f-23be-6c3e46f8a797","OpaqueRef:106a8006-8e4d-000a-e85e-5077503d891d","OpaqueRef:4eb027f0-0349-99d5-83ee-4d00063e9a62","OpaqueRef:51a0170c-4df8-88fb-62ad-a85085484604","OpaqueRef:dd56ce4e-8a5f-0776-a0ba-682b1dda3b84","OpaqueRef:795faa64-e21d-c19b-a175-7c28d7af1935","OpaqueRef:eba43944-c9fd-a3ca-d20c-d39c09923eeb","OpaqueRef:ea191445-996a-32e0-33dc-2819c43657a2","OpaqueRef:5cc07fdc-0c2b-0c42-8b20-b1bb3079ae8a","OpaqueRef:eb7f2515-ab28-d9d3-17eb-285a28545189","OpaqueRef:621bc530-1dd3-dea9-a82e-498f86b5664a","OpaqueRef:2b9a00f2-c5c8-a4cf-eca9-2792bb39f38b","OpaqueRef:206c900b-40cd-e97c-ef4d-1f20a3d67e1e","OpaqueRef:9366d110-4c7a-e528-014c-8cfd1bc735bc","OpaqueRef:2d30096c-51e6-487a-b95f-5d3b49e0922d","OpaqueRef:29ccccc0-78ea-f639-1829-f5579b6cc3fb","OpaqueRef:6979048a-de08-4e61-feb6-b5ad950b3b88","OpaqueRef:17c2c3d4-6525-49ca-28c3-efc752410e1c","OpaqueRef:8a499ea6-d0bc-3218-e271-c5507d8f8a96","OpaqueRef:1ec637f9-4157-5b26-dabb-31f3331c2959","OpaqueRef:b57b8c50-f2af-943e-a514-8340681aaaeb","OpaqueRef:c99755dd-030f-7f04-48b2-eadf25ecd92d","OpaqueRef:dd7abfd7-582c-ba1e-a5c3-3aca341b6a3f","OpaqueRef:0e8a9f8c-2c46-818a-9854-04bb6b36a68e","OpaqueRef:6915b3af-9d93-fe55-1e79-9859a603c794","OpaqueRef:25f8fc67-b562-e946-71e8-30b169bf70b7","OpaqueRef:d69e42f6-4afe-4a38-1794-1a7c062123a3","OpaqueRef:78840af4-8196-e8dc-af0d-08b1a2218dad","OpaqueRef:8fb7479c-f838-e29b-4693-651f31819f9f","OpaqueRef:5a960d88-c30e-3aaf-f79c-e58803f4e544","OpaqueRef:3561ecde-dba0-fb56-62b0-1a6101833aca","OpaqueRef:c59f2b3d-5a13-6c04-0021-0cdbec0121f8","OpaqueRef:114b6761-fa8c-3aaf-3bc3-757d86de8918","OpaqueRef:dc25c20a-f553-ff0d-b49c-ddb96d8e2e61","OpaqueRef:795b843c-c4cd-3690-a224-e36e687ef07c","OpaqueRef:43572bd0-288c-6290-e52d-9f12253f662e","OpaqueRef:e73ccdb9-0003-bcaa-8576-fd587f6abd36","OpaqueRef:4a4afbc3-0b2c-f5f2-6967-6afb51cf903e","OpaqueRef:f52942a8-5ac5-2c56-c42a-79d9c3ec2c82","OpaqueRef:6113a2d6-4c9c-48a9-dc31-1c7b590e3cde","OpaqueRef:adec2482-2774-2665-2682-d9ce334ff4a1","OpaqueRef:9412d249-3172-24d8-cf7e-9622564daaf9","OpaqueRef:87005ee6-c593-016c-5cb6-63ced4df556c","OpaqueRef:5c423f17-499e-76f6-a0a4-a8e96a9a5841","OpaqueRef:e701b23d-c37b-d583-890b-48657c03f5ad","OpaqueRef:90c6fb36-5d02-460e-f78c-c02828defb95","OpaqueRef:3fdd414e-97c6-a7a2-c297-871f5f05ee3d","OpaqueRef:8a92fce7-31af-97f1-33ba-74802d8522c3","OpaqueRef:3c291172-5a99-70dc-e6d1-d3637fe01b96","OpaqueRef:69ee95df-aa85-fa8f-a8fe-f906098d50fa","OpaqueRef:72145853-81ce-a12c-1606-14ff7432a7b6","OpaqueRef:4b96faeb-b163-23ce-bfb1-65338654423f","OpaqueRef:46eb0ae8-1c31-3d27-55a0-3e001e6a8cb0","OpaqueRef:c34920a2-588f-0628-3f8b-b3c5bab3ac4f","OpaqueRef:1d1d659f-b7df-54db-8b2f-a3fd62a67933","OpaqueRef:a00e1125-aa6c-2a9d-2cef-3000e5357ced","OpaqueRef:973b22d8-c0b0-834c-ff70-30cdd424d1d8","OpaqueRef:207a7572-567a-8900-16f4-41f9c102bdeb","OpaqueRef:50dc8d5b-e46e-8903-e94d-bffbbf1bccc1","OpaqueRef:3a016f8f-2d2f-9b6a-dfc7-9ad035c7e17d","OpaqueRef:1388c828-c07f-9391-a1fb-9cd0653117fa","OpaqueRef:49010e45-7adc-7912-16a1-45bbcd359177","OpaqueRef:d64e8bad-1a24-1fd3-93a5-b0252099f97f","OpaqueRef:3b10ba6c-e973-5bf2-5bcc-d429490f88cc","OpaqueRef:c03fd8c1-e01f-2726-7c57-d9e8066f042f","OpaqueRef:8aa70081-ff29-9795-004d-e48584816546","OpaqueRef:0dec93de-3a81-1b68-64b1-5a9fdfa5848c","OpaqueRef:bc40708d-314f-472f-4f71-da37b0f5440e","OpaqueRef:6c7256c1-dd50-fa5b-8dc2-4fe5858d1c08","OpaqueRef:98773f37-621e-5c05-3c3a-f7f7f034a76e","OpaqueRef:7a2ff2c2-5db7-9225-edfd-e27d4fc4ef5c","OpaqueRef:43c79c0a-2a5c-0e0a-b10b-5c0847fd888c","OpaqueRef:bf225b3b-1e37-86dd-5922-a04df826dba6","OpaqueRef:8274ff2e-c513-43d6-2a55-ce0057861430","OpaqueRef:0bdee192-3fa7-09af-d3ee-12cd06ebb91b","OpaqueRef:4b3fbad1-a1b2-ccc9-813c-9d6151a9d974","OpaqueRef:d6219686-f85d-245e-c292-f2dab9cf156f","OpaqueRef:cbb0830e-78d6-6db4-b10e-cd1acbffcfd8","OpaqueRef:137475bc-66cc-23b5-4a93-1101da98b268","OpaqueRef:435947cd-5662-5e05-3da1-cb3cb6937448","OpaqueRef:1411712a-41d3-d353-5e92-b977076e1b05","OpaqueRef:2c6424c8-06c4-34fa-1ef3-6f04e5805e1c","OpaqueRef:7588002d-2ebc-c944-8f10-c5c452efb97a","OpaqueRef:6e525c86-0bff-99e3-93b1-9130c8b68496","OpaqueRef:3d046d7f-a1de-59c3-e371-d58126e521d5","OpaqueRef:e0be1112-51fd-9ebb-5b03-cf2140a2ebe7","OpaqueRef:36bca930-2c10-ece7-d692-5fd29aca70a6","OpaqueRef:899a5718-836e-bb6f-7f8d-2ada2bbc96dc","OpaqueRef:dd24c4b3-62ab-3d64-f1c9-3c36df94d604","OpaqueRef:26051e27-35b3-e931-521f-cb8806ecf4b6","OpaqueRef:30f950cd-ded7-0c2c-e58c-d782eda3d752","OpaqueRef:ed901fb0-1968-23c6-ec49-bdbda2035014","OpaqueRef:b15fecc5-3baa-5969-d2f3-b883ec5f1bde","OpaqueRef:e83a8360-7f59-c3b8-6799-39fa6509772a","OpaqueRef:47707758-d7e2-88d8-20bd-6f063c40bd18","OpaqueRef:b18bd364-663f-1421-4321-d11d27c5b2c5","OpaqueRef:2c9fc908-4e38-a942-5bb7-8fc7e3202324","OpaqueRef:e362b679-36e0-70bc-be0c-1ca74c94dcba","OpaqueRef:34c9c779-9cca-96ea-40b5-252be5f41bc2","OpaqueRef:48ac5191-399a-1660-42c9-754b302eeb84","OpaqueRef:421958db-0318-8810-3244-01f0f855895a","OpaqueRef:154e0584-ee8b-74ae-4e57-b02afd66ba13","OpaqueRef:1a4cfda0-0d18-b966-86c4-b80e7a832211","OpaqueRef:faf17e53-86af-aa3b-93e7-46a7f130d178","OpaqueRef:53a516b7-ac7f-519f-b9e4-b9f79a6a1f58","OpaqueRef:c6e718ea-7554-1841-ffe9-48304dc85276","OpaqueRef:e6e276f5-85c3-01a4-43f6-c7699f4cf723","OpaqueRef:5607864d-8f51-59c6-74a3-cbe8fdf91e19","OpaqueRef:67a5efa1-04cf-098a-f236-30b058cd2f59","OpaqueRef:a1fb1090-0bca-17c8-bbc5-ed82e230cdf0","OpaqueRef:54b50900-4c44-f1b6-edc4-4b9d80e2dc48","OpaqueRef:0002e248-e4da-6542-fb0f-85214c20b145","OpaqueRef:8c6ddd51-dfd3-4063-a98f-240264641fa2","OpaqueRef:ffd180ac-0266-b6fd-a6f4-720dd314aa73","OpaqueRef:a682ee3c-c131-0965-a720-4b4733ac7960","OpaqueRef:ba0eb8b7-b7db-c614-7d4a-8e1c4308ed2c","OpaqueRef:c964a69f-d541-cd37-596d-97ded3a917f4","OpaqueRef:b79d6b7a-58d7-384a-1556-9c7f86c4469a","OpaqueRef:d918de41-726c-7c74-75bc-66122a9c9d78","OpaqueRef:9fd2bba6-b9a8-29a0-faa6-dfb3f7e47835","OpaqueRef:42c1215c-fcd0-e848-88a7-8e9ac7cb001d","OpaqueRef:28f7a03f-0ee3-383d-dcd2-ed2a466f62c0","OpaqueRef:a2c22e5a-4523-2a90-65ed-7501f6d08657","OpaqueRef:93de8b7d-a2e0-a1e7-3100-87b9a0c14aa9","OpaqueRef:ec6018b6-36d9-6815-1de8-7d6fc7e9e136","OpaqueRef:37215355-cf4c-bacb-1e33-1f027fb8c81e","OpaqueRef:8a1a13f2-8137-b095-84f5-ae67e3c3ffff","OpaqueRef:ae118c9d-8c3f-46ad-733e-39af8a3fe63f","OpaqueRef:21882b95-87bc-8ee8-cc2e-653037903827","OpaqueRef:9e6aaac3-334a-9504-3583-2a2f1ecba5b3","OpaqueRef:02aea1ba-d9b9-c004-768e-9b298561737c","OpaqueRef:0e96087f-e831-7f48-65e2-8b335a9aade1","OpaqueRef:001314d7-35e3-9c21-f0b9-083a1775b4d9","OpaqueRef:66dd3e88-4680-311b-0df8-ce833d998744","OpaqueRef:96fc2d1c-647c-8b14-e1f8-7b393b923f13","OpaqueRef:b9415fe6-a3a1-5cb8-ca85-df89c1304e8d","OpaqueRef:9bcaf150-0b82-265c-2206-1b5f2d672608","OpaqueRef:bb55d298-b018-8a07-a849-bdea9692a88c","OpaqueRef:5e022752-8add-d1bf-4ac1-9c859fd9103e","OpaqueRef:a9c6394a-92dc-b5f3-e377-438eda6cc36f","OpaqueRef:ca3fd393-55a0-9270-af2f-9a597674113d","OpaqueRef:9e19021f-426d-0492-91a2-d2bcee7eb6ee","OpaqueRef:1c2b0fce-97b0-af45-8117-3f8a18bf11c1","OpaqueRef:69669133-f49c-5eed-22c0-654a80cc085c","OpaqueRef:e800a707-f7c2-c185-80f1-3c298a352591","OpaqueRef:ac2c2a4c-d87a-c905-b8d4-52dfac47e848","OpaqueRef:cc20c134-daa5-044c-3982-93ad5b30ae16","OpaqueRef:56e4df7c-d3b3-7f0c-5c06-67b936e5c967","OpaqueRef:bfa4946b-f2ad-9e5f-d17d-0d129a9e9afe","OpaqueRef:9dcf063e-c70f-4076-bc7a-6436a11bf93e","OpaqueRef:f103f866-344b-fc35-82a2-1d8bd72efa19","OpaqueRef:8dbed2d4-f59e-4eda-25f5-49475952e89c","OpaqueRef:37eccaa8-7371-5762-181b-9221a1f3cdbe","OpaqueRef:b5337a5f-8bd6-7c38-19fa-78b2dfe69869","OpaqueRef:c75bb9b3-7413-aa27-4188-ba2a88e56822","OpaqueRef:42163f5b-56b3-9e8e-ee1c-568efc8f5585","OpaqueRef:a7e7ccf5-d7a3-c58b-15ac-dd6ac8da3241","OpaqueRef:6d88370b-3862-5c0d-2be0-558320f32846","OpaqueRef:69031664-571b-6054-c87d-77f5766e28cd","OpaqueRef:6957a0cf-3546-c299-ad05-c7c67b94f095","OpaqueRef:78482840-d3ca-b1b0-0c45-53a75b7824f9","OpaqueRef:9e2f661c-9cf2-0983-3c14-7c2e4de9eb5c","OpaqueRef:05cf5f8c-0219-db92-26a1-29047a37c972","OpaqueRef:4fc1bf13-e0be-d634-8559-8b19c590afba","OpaqueRef:618815a8-ec46-44b9-06f4-0d53ecfb1fbd","OpaqueRef:32b9bc96-01b8-dd88-a59d-3294434bcf10","OpaqueRef:a8ffab48-a8e1-853b-f61a-0d9324076916","OpaqueRef:1c05c0f1-dfa7-f44a-7c7e-40bf1149e207","OpaqueRef:a7d2f695-623b-686f-25e5-e470bd6373e1","OpaqueRef:4322c6ea-1807-3e88-4104-269a8510c62d","OpaqueRef:1bc6bbf9-cce0-9ad0-b1f0-51a2a1d0c004","OpaqueRef:a5fa3bd5-7e70-c0e7-73c7-a774b52ff12c","OpaqueRef:78f71ff6-7c64-3281-44b9-025cf751e185","OpaqueRef:44847e22-2d67-3744-0698-506f6a8243e9","OpaqueRef:7e5e9fde-3ee4-7cf1-4756-915f745b4914","OpaqueRef:f7367c8b-fa04-520e-e0cd-3c3e1aef8bc3"],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b9ce9791-0604-50cd-0649-09b3284c7dfd","$type":"role"},"OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620":{"uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","allowed_operations":["changing_dynamic_range","migrate_send","pool_migrate","changing_VCPUs_live","suspend","hard_reboot","hard_shutdown","clean_reboot","clean_shutdown","pause","checkpoint","snapshot"],"current_operations":{},"power_state":"Running","name_label":"ceph3","name_description":"","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:69b8dbde-161c-b3fa-bd1a-3567e7efdbda"],"VIFs":["OpaqueRef:20349ad5-0a0d-4b80-dcc0-0037fa647182"],"VBDs":["OpaqueRef:dbb53525-e1a3-741b-4924-9944b845bc0c","OpaqueRef:1bd20244-01a0-fec3-eb00-79a453a56446"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","base_template_name":"Other install media","mac_seed":"cead7392-4946-39d7-09b4-daafb2614919","install-methods":"cdrom"},"domid":"2","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:32a14d56-e91e-ff2d-e64d-f76b2fdc6444","guest_metrics":"OpaqueRef:67f79524-631e-07f4-a56d-be64819c0e7a","last_booted_record":"('struct' ('uuid' '65f9d98c-5b1f-bb9e-4aca-3abb044d385c') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:54b9563a-3ee5-4ec6-22f0-78f21d13cf69' 'start'))) ('power_state' 'Halted') ('name_label' 'ceph3') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '7340032') ('memory_target' '536870912') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array' 'OpaqueRef:69b8dbde-161c-b3fa-bd1a-3567e7efdbda')) ('VIFs' ('array' 'OpaqueRef:20349ad5-0a0d-4b80-dcc0-0037fa647182')) ('VBDs' ('array' 'OpaqueRef:dbb53525-e1a3-741b-4924-9944b845bc0c' 'OpaqueRef:1bd20244-01a0-fec3-eb00-79a453a56446')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('base_template_name' 'Other install media') ('mac_seed' 'cead7392-4946-39d7-09b4-daafb2614919') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:32a14d56-e91e-ff2d-e64d-f76b2fdc6444') ('guest_metrics' 'OpaqueRef:e02950f7-ad4b-4860-92d1-87ae6a6dbb2e') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '0') ('generation_id' '5895356696558929657:2651889715867936230'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"5895356696558929657:2651889715867936230","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620","$type":"VM"},"OpaqueRef:f81c6db6-4227-55a5-0c2f-b670ca5d8d3f":{"uuid":"00ee67e0-f4f0-a391-5019-b5bdb4a122e7","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 10 SP1 (64-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"c648cba1-3ca6-c7d5-f490-ff5c51fbf62a","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"x86_64","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:9887a3dc-d68f-e15a-c46b-cc35836d322e","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f81c6db6-4227-55a5-0c2f-b670ca5d8d3f","$type":"VM"},"OpaqueRef:f449b8ec-ac86-1b6d-2347-37ec36c41bc5":{"uuid":"d8f56cd6-1ecb-7cfa-9779-a5ec17a24d59","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Ubuntu Precise Pangolin 12.04 (32-bit)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0 d-i:base-installer/kernel/image=linux-generic-pae","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"17ce5e35-b739-3dcf-dfad-258bf4901910","default_template":"true","linux_template":"true","install-methods":"cdrom,http,ftp","install-arch":"i386","debian-release":"precise","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:20fb5479-1442-589a-3c87-641a52e1b1d1","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f449b8ec-ac86-1b6d-2347-37ec36c41bc5","$type":"VM"},"OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab":{"uuid":"ef72c2d2-4e58-feb6-a413-6e179deeb0c3","allowed_operations":["destroy","export","revert","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"ceph1snap","name_description":"","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":["OpaqueRef:fc86d17e-d9d1-5534-69d6-d15edbe36d22"],"VBDs":["OpaqueRef:30c40dc7-8c3d-45be-2f6b-f9ad5b9ba897","OpaqueRef:0e97a94e-d7ad-bda8-e838-0d7a6df51c12"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","base_template_name":"Other install media","mac_seed":"137a20a0-b21a-4dfc-1b04-188ad760c366","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:a3d89624-76d4-5c9d-c087-d525d14a265d","guest_metrics":"OpaqueRef:8382acb3-9ffb-47b9-ca98-8d827fd70d75","last_booted_record":"('struct' ('uuid' '6ff6f381-5400-b4f9-dfcb-c47a7e75f640') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:b1f7848f-3cdc-97a1-2116-3626ebaa4bf0' 'start'))) ('power_state' 'Halted') ('name_label' 'ceph1') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '7340032') ('memory_target' '0') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba')) ('VBDs' ('array' 'OpaqueRef:5733f2ad-687f-11e0-ade4-a468fb652332' 'OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('base_template_name' 'Other install media') ('mac_seed' '137a20a0-b21a-4dfc-1b04-188ad760c366') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:90fd0c59-8dab-9e49-4919-b3666446612b') ('guest_metrics' 'OpaqueRef:8d14a545-27ec-9234-93bb-ea83bfea00db') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee') ('version' '0') ('generation_id' '4910695138948249518:1646198367096027926'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":true,"snapshot_of":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf","snapshots":[],"snapshot_time":"2014-01-02T11:01:57.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{"disk-snapshot-type":"crash_consistent","power-state-at-snapshot":"Running"},"snapshot_metadata":"(('xenstore_data' '((\\'vm-data\\' \\'\\'))') ('version' '0') ('uuid' '6ff6f381-5400-b4f9-dfcb-c47a7e75f640') ('user_version' '1') ('transportable_snapshot_id' '') ('tags' '()') ('suspend_VDI' 'OpaqueRef:NULL') ('suspend_SR' 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee') ('start_delay' '0') ('snapshots' '()') ('snapshot_time' '19700101T00:00:00Z') ('snapshot_of' 'OpaqueRef:NULL') ('snapshot_metadata' '') ('snapshot_info' '()') ('shutdown_delay' '0') ('scheduled_to_be_resident_on' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692') ('recommendations' '') ('protection_policy' 'OpaqueRef:NULL') ('power_state' 'Running') ('platform' '((\\'timeoffset\\' \\'0\\') (\\'nx\\' \\'true\\') (\\'acpi\\' \\'1\\') (\\'apic\\' \\'true\\') (\\'pae\\' \\'true\\') (\\'viridian\\' \\'true\\'))') ('parent' 'OpaqueRef:NULL') ('other_config' '((\\'vgpu_pci\\' \\'\\') (\\'base_template_name\\' \\'Other install media\\') (\\'mac_seed\\' \\'137a20a0-b21a-4dfc-1b04-188ad760c366\\') (\\'install-methods\\' \\'cdrom\\'))') ('order' '0') ('name__label' 'ceph1') ('name__description' '') ('metrics' 'OpaqueRef:90fd0c59-8dab-9e49-4919-b3666446612b') ('memory__target' '536870912') ('memory__static_min' '134217728') ('memory__static_max' '536870912') ('memory__overhead' '7340032') ('memory__dynamic_min' '536870912') ('memory__dynamic_max' '536870912') ('last_booted_record' '(\\'struct\\' (\\'uuid\\' \\'6ff6f381-5400-b4f9-dfcb-c47a7e75f640\\') (\\'allowed_operations\\' (\\'array\\')) (\\'current_operations\\' (\\'struct\\' (\\'OpaqueRef:b1f7848f-3cdc-97a1-2116-3626ebaa4bf0\\' \\'start\\'))) (\\'power_state\\' \\'Halted\\') (\\'name_label\\' \\'ceph1\\') (\\'name_description\\' \\'\\') (\\'user_version\\' \\'1\\') (\\'is_a_template\\' (\\'boolean\\' \\'0\\')) (\\'suspend_VDI\\' \\'OpaqueRef:NULL\\') (\\'resident_on\\' \\'OpaqueRef:NULL\\') (\\'affinity\\' \\'OpaqueRef:NULL\\') (\\'memory_overhead\\' \\'7340032\\') (\\'memory_target\\' \\'0\\') (\\'memory_static_max\\' \\'536870912\\') (\\'memory_dynamic_max\\' \\'536870912\\') (\\'memory_dynamic_min\\' \\'536870912\\') (\\'memory_static_min\\' \\'134217728\\') (\\'VCPUs_params\\' (\\'struct\\')) (\\'VCPUs_max\\' \\'1\\') (\\'VCPUs_at_startup\\' \\'1\\') (\\'actions_after_shutdown\\' \\'destroy\\') (\\'actions_after_reboot\\' \\'restart\\') (\\'actions_after_crash\\' \\'restart\\') (\\'consoles\\' (\\'array\\')) (\\'VIFs\\' (\\'array\\' \\'OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba\\')) (\\'VBDs\\' (\\'array\\' \\'OpaqueRef:5733f2ad-687f-11e0-ade4-a468fb652332\\' \\'OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d\\')) (\\'crash_dumps\\' (\\'array\\')) (\\'VTPMs\\' (\\'array\\')) (\\'PV_bootloader\\' \\'\\') (\\'PV_kernel\\' \\'\\') (\\'PV_ramdisk\\' \\'\\') (\\'PV_args\\' \\'\\') (\\'PV_bootloader_args\\' \\'\\') (\\'PV_legacy_args\\' \\'\\') (\\'HVM_boot_policy\\' \\'BIOS order\\') (\\'HVM_boot_params\\' (\\'struct\\' (\\'order\\' \\'dc\\'))) (\\'HVM_shadow_multiplier\\' (\\'double\\' \\'1\\')) (\\'platform\\' (\\'struct\\' (\\'timeoffset\\' \\'0\\') (\\'nx\\' \\'true\\') (\\'acpi\\' \\'1\\') (\\'apic\\' \\'true\\') (\\'pae\\' \\'true\\') (\\'viridian\\' \\'true\\'))) (\\'PCI_bus\\' \\'\\') (\\'other_config\\' (\\'struct\\' (\\'vgpu_pci\\' \\'\\') (\\'base_template_name\\' \\'Other install media\\') (\\'mac_seed\\' \\'137a20a0-b21a-4dfc-1b04-188ad760c366\\') (\\'install-methods\\' \\'cdrom\\'))) (\\'domid\\' \\'-1\\') (\\'domarch\\' \\'\\') (\\'last_boot_CPU_flags\\' (\\'struct\\' (\\'vendor\\' \\'GenuineIntel\\') (\\'features\\' \\'77bae3ff-bfebfbff-00000001-28100800\\'))) (\\'is_control_domain\\' (\\'boolean\\' \\'0\\')) (\\'metrics\\' \\'OpaqueRef:90fd0c59-8dab-9e49-4919-b3666446612b\\') (\\'guest_metrics\\' \\'OpaqueRef:8d14a545-27ec-9234-93bb-ea83bfea00db\\') (\\'last_booted_record\\' \\'\\') (\\'recommendations\\' \\'\\') (\\'xenstore_data\\' (\\'struct\\' (\\'vm-data\\' \\'\\'))) (\\'ha_always_run\\' (\\'boolean\\' \\'0\\')) (\\'ha_restart_priority\\' \\'\\') (\\'is_a_snapshot\\' (\\'boolean\\' \\'0\\')) (\\'snapshot_of\\' \\'OpaqueRef:NULL\\') (\\'snapshots\\' (\\'array\\')) (\\'snapshot_time\\' (\\'dateTime.iso8601\\' \\'19700101T00:00:00Z\\')) (\\'transportable_snapshot_id\\' \\'\\') (\\'blobs\\' (\\'struct\\')) (\\'tags\\' (\\'array\\')) (\\'blocked_operations\\' (\\'struct\\')) (\\'snapshot_info\\' (\\'struct\\')) (\\'snapshot_metadata\\' \\'\\') (\\'parent\\' \\'OpaqueRef:NULL\\') (\\'children\\' (\\'array\\')) (\\'bios_strings\\' (\\'struct\\')) (\\'protection_policy\\' \\'OpaqueRef:NULL\\') (\\'is_snapshot_from_vmpp\\' (\\'boolean\\' \\'0\\')) (\\'appliance\\' \\'OpaqueRef:NULL\\') (\\'start_delay\\' \\'0\\') (\\'shutdown_delay\\' \\'0\\') (\\'order\\' \\'0\\') (\\'VGPUs\\' (\\'array\\')) (\\'attached_PCIs\\' (\\'array\\')) (\\'suspend_SR\\' \\'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee\\') (\\'version\\' \\'0\\') (\\'generation_id\\' \\'4910695138948249518:1646198367096027926\\'))') ('last_boot_CPU_flags' '((\\'vendor\\' \\'GenuineIntel\\') (\\'features\\' \\'77bae3ff-bfebfbff-00000001-28100800\\'))') ('is_snapshot_from_vmpp' 'false') ('is_control_domain' 'false') ('is_a_template' 'false') ('is_a_snapshot' 'false') ('ha_restart_priority' '') ('ha_always_run' 'false') ('guest_metrics' 'OpaqueRef:76cebea2-aff3-25b6-46c8-2bd5f4e93aa1') ('generation_id' '4910695138948249518:1646198367096027926') ('domid' '22') ('domarch' '') ('current_operations' '((\\'OpaqueRef:bb746414-0264-cda2-03c9-48b87e7d1bad\\' \\'snapshot\\'))') ('crash_dumps' '()') ('consoles' '(\\'OpaqueRef:cfd1c2da-a838-146a-eb69-65826ff94b28\\')') ('children' '()') ('blocked_operations' '()') ('blobs' '()') ('bios_strings' '((\\'bios-vendor\\' \\'Xen\\') (\\'bios-version\\' \\'\\') (\\'system-manufacturer\\' \\'Xen\\') (\\'system-product-name\\' \\'HVM domU\\') (\\'system-version\\' \\'\\') (\\'system-serial-number\\' \\'\\') (\\'hp-rombios\\' \\'\\') (\\'oem-1\\' \\'Xen\\') (\\'oem-2\\' \\'MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d\\'))') ('attached_PCIs' '()') ('appliance' 'OpaqueRef:NULL') ('allowed_operations' '(\\'checkpoint\\' \\'snapshot\\')') ('affinity' 'OpaqueRef:NULL') ('actions__after_shutdown' 'destroy') ('actions__after_reboot' 'restart') ('actions__after_crash' 'restart') ('_ref' 'OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf') ('VTPMs' '()') ('VIFs' '(\\'OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba\\')') ('VGPUs' '()') ('VCPUs__params' '()') ('VCPUs__max' '1') ('VCPUs__at_startup' '1') ('VBDs' '(\\'OpaqueRef:5733f2ad-687f-11e0-ade4-a468fb652332\\' \\'OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d\\')') ('PV__ramdisk' '') ('PV__legacy_args' '') ('PV__kernel' '') ('PV__bootloader_args' '') ('PV__bootloader' '') ('PV__args' '') ('PCI_bus' '') ('HVM__shadow_multiplier' '1') ('HVM__boot_policy' 'BIOS order') ('HVM__boot_params' '((\\'order\\' \\'dc\\'))'))","parent":"OpaqueRef:NULL","children":["OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf"],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"8031693710925799621:245046595258344845","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab","$type":"VM"},"OpaqueRef:f02a3c19-447b-c618-fb51-a9cde79be17c":{"uuid":"c1d2e65d-9f5c-65af-f509-7e28513c30a6","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Debian Wheezy 7.0 (64-bit)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"cedee99b-1433-412d-3873-71f1b38ce265","default_template":"true","linux_template":"true","install-methods":"cdrom,http,ftp","install-arch":"amd64","debian-release":"wheezy","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:3c5cc169-23f0-d3e2-4683-d55a44ec8d4d","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f02a3c19-447b-c618-fb51-a9cde79be17c","$type":"VM"},"OpaqueRef:ee2e2c00-8011-4847-ba7e-c288d5fb01f5":{"uuid":"36a48cc3-4872-f857-8a21-b985337d9919","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Red Hat Enterprise Linux 4.8 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"8469a92f-9e69-748d-87a3-c58d12524476","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","machine-address-size":"36","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:9a1110ca-9f0c-cf67-7a10-491ab766fe67","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ee2e2c00-8011-4847-ba7e-c288d5fb01f5","$type":"VM"},"OpaqueRef:ebc96e49-11d4-471d-c21f-625a95c34ff9":{"uuid":"c0d28fef-7e07-0e4f-43e2-82d8b9108b9a","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Citrix XenApp on Windows Server 2008 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Citrix XenApp on Windows Server 2008 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"39845888","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":4,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"c605c358-9824-afd3-aff4-1da4091ca141","default_template":"true","disks":"","install-methods":"cdrom","application_template":"1"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:4eb85b24-adad-5e54-5744-169061b33984","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ebc96e49-11d4-471d-c21f-625a95c34ff9","$type":"VM"},"OpaqueRef:e9fb38c8-acc3-dbb8-cc6f-f1f89b03c1ae":{"uuid":"4d4b6ed4-44af-6e9b-221f-31b9ed2d7f89","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Red Hat Enterprise Linux 4.5 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"0c76aa86-bdd5-4463-f44b-ae6c0cfff3d9","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","suppress-spurious-page-faults":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:1fdd5159-371d-01b7-e0ec-c38eea4cca26","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e9fb38c8-acc3-dbb8-cc6f-f1f89b03c1ae","$type":"VM"},"OpaqueRef:e803bc1b-d3be-b95f-f3cc-a26a174ec93c":{"uuid":"f06fa66c-1b0a-115b-f52c-5791a5172438","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Oracle Enterprise Linux 6 (64-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"23f8e57b-b3cd-ece2-1acb-283809494ee6","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel6":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:32a55743-6715-40e2-92e1-a89b0d778ae5","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e803bc1b-d3be-b95f-f3cc-a26a174ec93c","$type":"VM"},"OpaqueRef:e373c644-3576-985e-9c8f-67062c81d0d2":{"uuid":"24573289-bd13-2817-02ae-2cbd1970175b","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows Server 2003 (32-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows Server 2003 (32-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"false","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"923a3dad-3b63-c05e-34f5-d68c54b022a8","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:06933481-218a-b618-b4b3-6ee603f7e9fd","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e373c644-3576-985e-9c8f-67062c81d0d2","$type":"VM"},"OpaqueRef:e3035b8b-cd27-3e7c-ecbf-54a18a2da59e":{"uuid":"5efbf3d9-76b8-23f7-70d9-7c88db29606d","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"CentOS 5 (64-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"c53976f2-0719-cc99-bfdc-5a83b3fff4f2","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel5":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:330446d3-ed68-0e3f-e333-ea57e15bf907","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e3035b8b-cd27-3e7c-ecbf-54a18a2da59e","$type":"VM"},"OpaqueRef:d99a46bf-1b68-072c-00db-444d099466cd":{"uuid":"9eaf2506-a7c5-7912-6131-7e6b6b26493d","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows Vista (32-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows Vista (32-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"19922944","memory_target":"2147483648","memory_static_max":"2147483648","memory_dynamic_max":"2147483648","memory_dynamic_min":"2147483648","memory_static_min":"1073741824","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"08242bf2-87bc-f80b-5c24-ace0d6172d17","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:ac6e7483-f2e6-8b16-fa35-e825fd36b648","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d99a46bf-1b68-072c-00db-444d099466cd","$type":"VM"},"OpaqueRef:d4fa8fba-ec86-5928-a1bb-dd78b6fb5944":{"uuid":"1b227ddc-d15f-0c60-d543-14e74934a0a9","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","make_into_template","destroy","export","start_on","start","clone","copy","snapshot"],"current_operations":{},"power_state":"Halted","name_label":"auths1","name_description":"LDAP replication from AuthM","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"0","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":["OpaqueRef:ed2d89ca-1f4e-09ff-f80e-991d6b01de45","OpaqueRef:ba41d1a6-724e-aae8-3447-20f74014eb75"],"VBDs":["OpaqueRef:4f5fce42-2516-ffd9-ecad-da71f8d83631","OpaqueRef:3026bd5a-3bae-2b3f-9b68-4a18a3208e51"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"pygrub","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"import_task":"OpaqueRef:8b4be43b-9ee2-e65b-5246-e416e41a6adb","vgpu_pci":"","debian-release":"wheezy","install-methods":"cdrom,http,ftp","install-arch":"amd64","mac_seed":"c7661502-d9f4-4be7-38db-b334cd08a313","base_template_name":"Debian Wheezy 7.0 (64-bit)","install-repository":"cdrom","linux_template":"true"},"domid":"-1","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:578974ff-4461-f243-d895-12b0c65fb7c6","guest_metrics":"OpaqueRef:NULL","last_booted_record":"('struct' ('uuid' '1b227ddc-d15f-0c60-d543-14e74934a0a9') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:e7441a48-9288-203b-deeb-9d5e510cf2c9' 'start'))) ('power_state' 'Halted') ('name_label' 'auths1') ('name_description' 'LDAP replication from AuthM') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '6291456') ('memory_target' '0') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:a31a217d-c838-0a79-185b-a18da69df5f0' 'OpaqueRef:1f61d642-90e4-36eb-25ba-fe17c5e2aa83')) ('VBDs' ('array' 'OpaqueRef:db859614-26da-2432-be81-925c2354cabe' 'OpaqueRef:631f8034-b9ef-8c20-17bf-303b69a9866a')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' 'pygrub') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '-- quiet console=hvc0') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' '') ('HVM_boot_params' ('struct')) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('import_task' 'OpaqueRef:df911097-d9ea-a62d-34af-53971beffa9b') ('debian-release' 'wheezy') ('install-methods' 'cdrom,http,ftp') ('install-arch' 'amd64') ('mac_seed' 'c7661502-d9f4-4be7-38db-b334cd08a313') ('base_template_name' 'Debian Wheezy 7.0 (64-bit)') ('install-repository' 'cdrom') ('linux_template' 'true'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:bc712cb3-2e84-7e74-3fd7-0631d3807e47') ('guest_metrics' 'OpaqueRef:NULL') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'Ref:126') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'Ref:126') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:804177dc-072c-d4ca-0f89-b97befb25f21') ('version' '1') ('generation_id' '4786090885546240875:1524683220990742639'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"2","generation_id":"4969096778217307648:5239928812209926870","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d4fa8fba-ec86-5928-a1bb-dd78b6fb5944","$type":"VM"},"OpaqueRef:d45b3989-7350-5166-eeaa-7b789a32addd":{"uuid":"6f97bdc7-b0f6-ad2a-796e-21f96897554a","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"CentOS 4.5 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"d38e3b7c-3dbf-b463-d0f5-b5d3c6977924","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","suppress-spurious-page-faults":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:55803538-7c63-a959-0f54-a1d0a4a9ee77","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d45b3989-7350-5166-eeaa-7b789a32addd","$type":"VM"},"OpaqueRef:d18c965e-0cef-48b0-2f8d-d48ef6663c32":{"uuid":"3b8d81f8-b31a-dfe5-7e17-04250b0610e3","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"CentOS 4.6 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"f398d6db-bd51-397f-c1bb-839b1d519a2f","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","suppress-spurious-page-faults":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:97fa3418-3c1b-ab9c-e89c-01d444556752","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d18c965e-0cef-48b0-2f8d-d48ef6663c32","$type":"VM"},"OpaqueRef:d15de0db-1dc5-2a00-331a-c0f7d3c2e123":{"uuid":"48c9e0eb-ce03-88fb-185c-2e8f3156dda5","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 11 SP2 (32-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"478e6e45-1f23-ffe4-d228-78448fe1c7e8","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"i386","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:8d02ffa7-b1eb-c691-c0ab-c9bb59392caa","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d15de0db-1dc5-2a00-331a-c0f7d3c2e123","$type":"VM"},"OpaqueRef:cfe620f9-5c68-0f35-ce9f-8f5227fda1c8":{"uuid":"c98c9487-eb50-e64a-07b4-b38c3b45dca4","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 11 SP2 (64-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"71ef7941-3a4a-5f27-ea8c-ff47213a233b","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"x86_64","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:96cff684-92e0-4968-1f62-93a330bf0e31","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cfe620f9-5c68-0f35-ce9f-8f5227fda1c8","$type":"VM"},"OpaqueRef:cb865487-9139-3fbc-4aac-68abdb663925":{"uuid":"ef6e5f41-12b3-1716-3ba9-3e7a9f4633fc","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Ubuntu Lucid Lynx 10.04 (32-bit)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"9f984b48-8b74-6b3a-b5a4-a2e8ae999f32","default_template":"true","linux_template":"true","install-methods":"http,ftp","install-arch":"i386","debian-release":"lucid","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:3a80587d-4f14-6e52-88be-9820b8350653","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cb865487-9139-3fbc-4aac-68abdb663925","$type":"VM"},"OpaqueRef:c8bf31d6-9888-4256-1547-c722016a0079":{"uuid":"da3fdf4c-66c6-877e-0ee5-191202ab2a93","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Debian Wheezy 7.0 (32-bit)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"90277220-241f-ed8b-1997-d841759c7771","default_template":"true","linux_template":"true","install-methods":"cdrom,http,ftp","install-arch":"i386","debian-release":"wheezy","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:7d28809c-3623-4cd9-e3d4-20dfa80e1cc7","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c8bf31d6-9888-4256-1547-c722016a0079","$type":"VM"},"OpaqueRef:c651901b-0944-be6b-aabf-a87d9a037edd":{"uuid":"b29063cb-7b93-890d-1a55-f5d08f94b184","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Citrix XenApp on Windows Server 2003 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Citrix XenApp on Windows Server 2003 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"23068672","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":4,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"f1dd907d-4f36-2c5c-b8db-ca0adcd858ba","default_template":"true","disks":"","install-methods":"cdrom","application_template":"1"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:5c872249-dc30-ee3c-dbab-96d39c3661ba","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c651901b-0944-be6b-aabf-a87d9a037edd","$type":"VM"},"OpaqueRef:c5a9e2de-1916-7f4c-aa2a-ce95d138032b":{"uuid":"cd200a83-7ecc-6bfa-20fd-870b238e3439","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Xen API SDK","name_description":"Use this template to install a Xen API SDK using installation media","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"18874368","memory_target":"2147483648","memory_static_max":"2147483648","memory_dynamic_max":"2147483648","memory_dynamic_min":"2147483648","memory_static_min":"1073741824","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"xencons=hvc console=hvc0 install answerfile=file:///sdk.answerfile","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"c655b013-491c-c2af-5e15-d92b537c0d4a","default_template":"true","linux_template":"true","disks":"","install-distro":"pygrub","install-methods":"cdrom,http,ftp","install-kernel":"vmlinuz","install-ramdisk":"install.img"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:46e47b62-7755-d796-360b-6ddb7154cff9","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c5a9e2de-1916-7f4c-aa2a-ce95d138032b","$type":"VM"},"OpaqueRef:c22bce1f-16a0-7745-179d-dcbd5c5deab3":{"uuid":"318efd52-a606-a57f-8c4f-2dd4a8fa7e55","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 10 SP2 (32-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"468a4198-fe84-b821-1769-df2b9c90d9f0","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"i386","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:57ae558c-8f14-e910-7061-ca7edf8e4fe0","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c22bce1f-16a0-7745-179d-dcbd5c5deab3","$type":"VM"},"OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386":{"uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","allowed_operations":["changing_dynamic_range","hard_reboot","hard_shutdown","pause","snapshot"],"current_operations":{},"power_state":"Running","name_label":"Debian HVM","name_description":"","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","affinity":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","memory_overhead":"23068672","memory_target":"2147483648","memory_static_max":"2147483648","memory_dynamic_max":"2147483648","memory_dynamic_min":"2147483648","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"4","VCPUs_at_startup":"4","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:ddbf5417-0aef-509e-3f58-33afe1f34a41"],"VIFs":["OpaqueRef:59b884b0-521f-7b3e-6a91-319ded893e68"],"VBDs":["OpaqueRef:b75f0abc-9706-16b6-4e14-16e8202a32a2","OpaqueRef:af6082a2-bad2-5898-f44e-6f25f22e22ba"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","base_template_name":"Other install media","mac_seed":"c1b3603e-67fe-95e4-6396-004e0e5c6ae7","install-methods":"cdrom"},"domid":"1","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:7d2333d0-763d-cc6b-d269-cc794ef5a03a","guest_metrics":"OpaqueRef:NULL","last_booted_record":"('struct' ('uuid' '1a66c720-8632-5ca3-1e4d-82569780a1b8') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:703755f8-9414-50bc-c16b-8174a1b7172d' 'start'))) ('power_state' 'Halted') ('name_label' 'Debian HVM') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692') ('memory_overhead' '23068672') ('memory_target' '0') ('memory_static_max' '2147483648') ('memory_dynamic_max' '2147483648') ('memory_dynamic_min' '2147483648') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '4') ('VCPUs_at_startup' '4') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:59b884b0-521f-7b3e-6a91-319ded893e68')) ('VBDs' ('array' 'OpaqueRef:b75f0abc-9706-16b6-4e14-16e8202a32a2' 'OpaqueRef:af6082a2-bad2-5898-f44e-6f25f22e22ba')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('base_template_name' 'Other install media') ('mac_seed' 'c1b3603e-67fe-95e4-6396-004e0e5c6ae7') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:7d2333d0-763d-cc6b-d269-cc794ef5a03a') ('guest_metrics' 'OpaqueRef:NULL') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee') ('version' '0') ('generation_id' '2589838662128887494:4322623611745874655'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","version":"0","generation_id":"2589838662128887494:4322623611745874655","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386","$type":"VM"},"OpaqueRef:be6abc7d-dd7a-5ee6-9c95-8e562a69d992":{"uuid":"0440d148-c798-83be-d50b-23b33bf31560","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 10 SP1 (32-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"97d035a3-eec8-e465-4ea0-b9ad780c18b2","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"i386","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:5415735c-8dc3-dd4e-9bf2-a420929a5142","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:be6abc7d-dd7a-5ee6-9c95-8e562a69d992","$type":"VM"},"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf":{"uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","allowed_operations":["changing_dynamic_range","migrate_send","pool_migrate","changing_VCPUs_live","suspend","hard_reboot","hard_shutdown","clean_reboot","clean_shutdown","pause","checkpoint","snapshot"],"current_operations":{},"power_state":"Running","name_label":"ceph1","name_description":"","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:fc87099d-19a0-19ae-2791-33b27bff86c6"],"VIFs":["OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba"],"VBDs":["OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d","OpaqueRef:5733f2ad-687f-11e0-ade4-a468fb652332"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","base_template_name":"Other install media","mac_seed":"137a20a0-b21a-4dfc-1b04-188ad760c366","install-methods":"cdrom"},"domid":"36","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:90fd0c59-8dab-9e49-4919-b3666446612b","guest_metrics":"OpaqueRef:2cf98c98-d625-af1d-421c-7a9dd1a82c29","last_booted_record":"('struct' ('uuid' '6ff6f381-5400-b4f9-dfcb-c47a7e75f640') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:a55a1e21-aac9-69cc-012d-b644d7eff834' 'start'))) ('power_state' 'Halted') ('name_label' 'ceph1') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '7340032') ('memory_target' '0') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba')) ('VBDs' ('array' 'OpaqueRef:5733f2ad-687f-11e0-ade4-a468fb652332' 'OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('base_template_name' 'Other install media') ('mac_seed' '137a20a0-b21a-4dfc-1b04-188ad760c366') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:90fd0c59-8dab-9e49-4919-b3666446612b') ('guest_metrics' 'OpaqueRef:24a61328-ff70-658d-3366-4a354f1b8cec') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array' 'OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee') ('version' '0') ('generation_id' '4910695138948249518:1646198367096027926'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":["OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab"],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","version":"0","generation_id":"4910695138948249518:1646198367096027926","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf","$type":"VM"},"OpaqueRef:b9587bb6-6efe-0c71-e01c-2c750c9ab774":{"uuid":"1919e18d-1a61-f926-8d7b-663f7d856cc2","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Oracle Enterprise Linux 5 (64-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"c44e20fc-bed6-0b01-b695-42ae9766ccee","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel5":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:c08f4ca1-b513-e611-bc2c-aef4c50416d9","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b9587bb6-6efe-0c71-e01c-2c750c9ab774","$type":"VM"},"OpaqueRef:b6f58482-8b60-b3b4-2a01-0d6113411bf2":{"uuid":"e760f15e-57cb-00fc-dd1c-626afd6351e8","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows 7 (32-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows 7 (32-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"19922944","memory_target":"2147483648","memory_static_max":"2147483648","memory_dynamic_max":"2147483648","memory_dynamic_min":"2147483648","memory_static_min":"1073741824","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"8330cd19-069c-e419-64a8-3457950f700e","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:ae72234f-88b1-5277-1045-645381c4cb64","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b6f58482-8b60-b3b4-2a01-0d6113411bf2","$type":"VM"},"OpaqueRef:ad21fbbb-6cf9-e6ca-c415-1f428f20da1f":{"uuid":"0aacebe2-c7ac-14de-e58e-c4fb11d6c8e4","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 10 SP4 (64-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"88f4064d-8b64-6dc7-7010-10ee7fd120d2","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"x86_64","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:8904966a-1ac7-0559-0aed-c93c4c1f973c","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ad21fbbb-6cf9-e6ca-c415-1f428f20da1f","$type":"VM"},"OpaqueRef:aa2d04ec-0512-c128-8820-c8ecde93baa4":{"uuid":"c9ac44eb-e03b-b002-7223-ecdefaa6da57","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Ubuntu Lucid Lynx 10.04 (64-bit)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"5c2fbb3a-a3ab-c5db-ed1b-4108bd9cfaac","default_template":"true","linux_template":"true","install-methods":"http,ftp","install-arch":"amd64","debian-release":"lucid","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:9c7658c6-dba2-f352-c19a-52c02ec4d120","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aa2d04ec-0512-c128-8820-c8ecde93baa4","$type":"VM"},"OpaqueRef:a247a02f-8909-5044-64a0-82460b25e740":{"uuid":"46ba4929-43cd-2dbe-3f89-27d679d87337","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","destroy","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"ceph0","name_description":"","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"0","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":["OpaqueRef:c6651d03-cefe-accf-920b-636e32fee23c"],"VBDs":["OpaqueRef:6d56b856-070d-2ade-766b-59fb82506ffc","OpaqueRef:182e2fec-67c3-eacb-b2f9-c493add21d65"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"instant":"true","vgpu_pci":"","base_template_name":"Other install media","mac_seed":"dc8e80b9-6deb-0ff6-9c4e-4e02a1e4e772","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:677f94a3-dc97-e061-5b1d-5d96a4d869c0","guest_metrics":"OpaqueRef:1e712b5c-2774-d28b-a6b4-dce9f91c5578","last_booted_record":"('struct' ('uuid' '6ff6f381-5400-b4f9-dfcb-c47a7e75f640') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:e0042efc-127a-36ff-9642-23929eb3ec92' 'start'))) ('power_state' 'Halted') ('name_label' 'ceph1') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '7340032') ('memory_target' '536870912') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba')) ('VBDs' ('array' 'OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d' 'OpaqueRef:5733f2ad-687f-11e0-ade4-a468fb652332')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('base_template_name' 'Other install media') ('mac_seed' '137a20a0-b21a-4dfc-1b04-188ad760c366') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct')) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:90fd0c59-8dab-9e49-4919-b3666446612b') ('guest_metrics' 'OpaqueRef:NULL') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct')) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee') ('version' '0') ('generation_id' '4910695138948249518:1646198367096027926'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"4399405787912656351:5749539514260852671","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a247a02f-8909-5044-64a0-82460b25e740","$type":"VM"},"OpaqueRef:9d28dba9-aee6-cafd-06af-54ebdfb1c271":{"uuid":"5ec6ff9f-fa7d-6f59-7659-73e3634c288c","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Citrix XenApp on Windows Server 2003 (32-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Citrix XenApp on Windows Server 2003 (32-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"23068672","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":4,"platform":{"nx":"false","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"53a035f1-f136-e3db-8f94-e518a8668749","default_template":"true","disks":"","install-methods":"cdrom","application_template":"1"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:90f79a0d-e67d-2911-3f77-850fbd23578e","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9d28dba9-aee6-cafd-06af-54ebdfb1c271","$type":"VM"},"OpaqueRef:9796cc01-6640-211f-09f9-fee94f9cd720":{"uuid":"64ed5630-2d37-0bd4-662a-aab4adab1de6","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"CentOS 6 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"d0de3922-68de-9046-05a2-ad0cd6fdebfa","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel6":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:78fd1740-ad46-024d-7989-fae9b4532533","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9796cc01-6640-211f-09f9-fee94f9cd720","$type":"VM"},"OpaqueRef:922b3a98-f238-4cea-8b75-c38e90ac11ee":{"uuid":"38f731f4-0ae3-6f17-4f15-03d9b25a8ab0","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 11 SP1 (64-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"515354e6-4e19-1bc2-fdd9-d72b714b200e","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"x86_64","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:33d68356-53ae-6709-1466-66cd697ae165","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:922b3a98-f238-4cea-8b75-c38e90ac11ee","$type":"VM"},"OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1":{"uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","allowed_operations":["changing_dynamic_range","migrate_send","pool_migrate","changing_VCPUs_live","suspend","hard_reboot","hard_shutdown","clean_reboot","clean_shutdown","pause","checkpoint","snapshot"],"current_operations":{},"power_state":"Running","name_label":"ceph2","name_description":"","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:c69bacbe-4d11-b0a9-c079-9b580cf22bde"],"VIFs":["OpaqueRef:c391575b-168f-e52b-59f7-9f852a2c6854"],"VBDs":["OpaqueRef:4ca79a63-da5f-03c6-a9e3-1822331a18e1","OpaqueRef:267ec28d-37fd-5654-cfc9-df4727d2840d"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","base_template_name":"Other install media","mac_seed":"c790ab04-84c3-e6d8-7f84-c42717d64c7c","install-methods":"cdrom"},"domid":"34","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:253ee5d4-d194-8bb9-d623-403964a3443c","guest_metrics":"OpaqueRef:3ddfb17f-c142-49d7-38fc-3a7e7f8239c9","last_booted_record":"('struct' ('uuid' 'f39634f9-b880-f9a4-4792-cd5efc7c05ba') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:e32adcce-19fa-7edf-09ee-b5b57cbae20c' 'start'))) ('power_state' 'Halted') ('name_label' 'ceph2') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '7340032') ('memory_target' '0') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:c391575b-168f-e52b-59f7-9f852a2c6854')) ('VBDs' ('array' 'OpaqueRef:267ec28d-37fd-5654-cfc9-df4727d2840d' 'OpaqueRef:4ca79a63-da5f-03c6-a9e3-1822331a18e1')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('base_template_name' 'Other install media') ('mac_seed' 'c790ab04-84c3-e6d8-7f84-c42717d64c7c') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:253ee5d4-d194-8bb9-d623-403964a3443c') ('guest_metrics' 'OpaqueRef:930fcac9-463a-4688-6007-ce78674ae7e3') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '0') ('generation_id' '2249465421540113984:7187965434232770995'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"2249465421540113984:7187965434232770995","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1","$type":"VM"},"OpaqueRef:8e720505-e75b-eda3-3b14-fd1471890cc1":{"uuid":"4b6108d2-1c9f-4a91-2333-6e6c6e39c763","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 11 SP1 (32-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"084d637e-c069-09cb-ab63-a33b7972275b","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"i386","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:7acd7450-2c8f-441b-133b-cfc060c23bf6","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8e720505-e75b-eda3-3b14-fd1471890cc1","$type":"VM"},"OpaqueRef:8e3211dc-fdaf-22c7-41b2-c3a892529679":{"uuid":"1061cd6e-5fdb-07b8-7ca5-e5d5ec9ccdf9","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows Server 2008 R2 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows Server 2008 R2 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"11534336","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"d5c1a313-9167-13c9-c0ab-7fc65f915e9d","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:a8ef42ac-5a68-bf0f-2c84-c61257a4322b","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8e3211dc-fdaf-22c7-41b2-c3a892529679","$type":"VM"},"OpaqueRef:89919714-1184-ce4b-3cb5-67059640b3a7":{"uuid":"f96cb028-9e3c-95f1-3ea1-8656c995f0f0","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Debian Squeeze 6.0 (32-bit)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///\nIn order to install Debian Squeeze from CD/DVD the multi-arch ISO image is required.","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"274952b8-61d4-9df3-1be8-1275a237aa73","default_template":"true","linux_template":"true","install-methods":"cdrom,http,ftp","install-arch":"i386","debian-release":"squeeze","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:8937851b-dbca-0b69-ba19-7dd0f2c6a0ee","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:89919714-1184-ce4b-3cb5-67059640b3a7","$type":"VM"},"OpaqueRef:892768c0-4d15-769f-e760-b781a0291ddb":{"uuid":"2e32c85c-8baa-7d84-1a1b-d43a9158de16","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Debian Squeeze 6.0 (64-bit)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///\nIn order to install Debian Squeeze from CD/DVD the multi-arch ISO image is required.","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"fe110417-924d-7f90-a394-a094575a7ee8","default_template":"true","linux_template":"true","install-methods":"cdrom,http,ftp","install-arch":"amd64","debian-release":"squeeze","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:b1e661eb-b4ac-afab-41cd-7df6c48a3b10","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:892768c0-4d15-769f-e760-b781a0291ddb","$type":"VM"},"OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861":{"uuid":"dd04ba80-a9c9-bcca-19f2-8249ce816546","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","make_into_template","destroy","export","start_on","start","clone","copy","snapshot"],"current_operations":{},"power_state":"Halted","name_label":"auths1","name_description":"","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:c7c926ae-45fa-5b49-7ad0-7d32972a4065"],"VIFs":["OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf"],"VBDs":["OpaqueRef:9c79f0d5-5980-6f28-0240-6cdb42b31876","OpaqueRef:65c3b9df-5b63-4f73-067d-34540eb89f56"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","instant":"true","base_template_name":"Other install media","mac_seed":"39345550-a86b-01e6-275b-24181c417856","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:75125f8c-b90e-731d-bc1c-84089306afed","guest_metrics":"OpaqueRef:887509ff-390f-2ac1-2769-6568884dc2d2","last_booted_record":"('struct' ('uuid' 'dd04ba80-a9c9-bcca-19f2-8249ce816546') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:f3a8ed35-93d7-6cae-e05a-e48fe0698814' 'start'))) ('power_state' 'Halted') ('name_label' 'auths1') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '7340032') ('memory_target' '536870912') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array' 'OpaqueRef:ab3a1e51-3db1-27ca-fa24-cb3a5f4ae245')) ('VIFs' ('array' 'OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf')) ('VBDs' ('array' 'OpaqueRef:9c79f0d5-5980-6f28-0240-6cdb42b31876' 'OpaqueRef:65c3b9df-5b63-4f73-067d-34540eb89f56')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('instant' 'true') ('base_template_name' 'Other install media') ('mac_seed' '39345550-a86b-01e6-275b-24181c417856') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:75125f8c-b90e-731d-bc1c-84089306afed') ('guest_metrics' 'OpaqueRef:7bb504c3-eb7e-41e5-620f-44e59b9a671a') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array' 'OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '0') ('generation_id' '5202674002911672539:6785018360954601688'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":["OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43"],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"5202674002911672539:6785018360954601688","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861","$type":"VM"},"OpaqueRef:838ff163-ae6e-d98e-9cef-4d783f81dcb0":{"uuid":"14ce051a-4124-c5bf-68d9-322b4a14d1b3","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Citrix XenApp on Windows Server 2008 (32-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Citrix XenApp on Windows Server 2008 (32-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"39845888","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":4,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"3fc253a2-2512-28c6-5e1b-3c7a91f9f93c","default_template":"true","disks":"","install-methods":"cdrom","application_template":"1"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:47592c33-6474-9afb-d8ef-6eaa002f0efe","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:838ff163-ae6e-d98e-9cef-4d783f81dcb0","$type":"VM"},"OpaqueRef:8079d64b-fe87-0ecf-e558-7b607b0e1524":{"uuid":"b134fb25-7363-7f79-dd26-17a613701588","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows Server 2008 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows Server 2008 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"11534336","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"a312db4e-e4c4-597f-c14c-5135e65ced19","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:fd9a9893-0cb0-e54b-067a-bc090453f1de","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8079d64b-fe87-0ecf-e558-7b607b0e1524","$type":"VM"},"OpaqueRef:773d92c9-898b-bc25-a50d-d868bbf933a4":{"uuid":"352664d5-4d9e-e403-941f-a36e5b043923","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows Server 2012 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows Server 2012 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"19922944","memory_target":"2147483648","memory_static_max":"2147483648","memory_dynamic_max":"2147483648","memory_dynamic_min":"2147483648","memory_static_min":"1073741824","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","vga":"std","videoram":"8","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"addd9c3a-97d4-6dcf-ca83-cc5e8d999a45","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:c0417c9b-9e44-fa47-0b2b-b813f7d704ae","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"0:0","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:773d92c9-898b-bc25-a50d-d868bbf933a4","$type":"VM"},"OpaqueRef:770d2193-ab69-4fc3-c462-7f75a79d497c":{"uuid":"556b72cf-2dd0-c4c2-6ef3-a11a849fce9c","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows 8 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows 8 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"36700160","memory_target":"4294967296","memory_static_max":"4294967296","memory_dynamic_max":"4294967296","memory_dynamic_min":"4294967296","memory_static_min":"2147483648","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","vga":"std","videoram":"8","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"2a6064e2-17e1-051b-2cd0-74b760865ac4","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:bf7e4ed4-c2da-2e74-a45d-39046160f72e","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"0:0","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:770d2193-ab69-4fc3-c462-7f75a79d497c","$type":"VM"},"OpaqueRef:75441e00-55df-85f5-1780-731110df91de":{"uuid":"d5d0fcfc-ddf7-256f-09e3-f90d042f0bc0","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 10 SP4 (32-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"c156bdc0-5dd9-be6f-c835-cb70f0220bbf","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"i386","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:8eca8952-b167-3dcb-ab0b-6155ee135871","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:75441e00-55df-85f5-1780-731110df91de","$type":"VM"},"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed":{"uuid":"44536d07-7e6c-4b65-9b6b-cc7772ade225","allowed_operations":["changing_dynamic_range"],"current_operations":{},"power_state":"Running","name_label":"Control domain on host: lab2","name_description":"The domain which manages physical devices and manages other domains","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","affinity":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","memory_overhead":"11534336","memory_target":"780140544","memory_static_max":"780140544","memory_dynamic_max":"771489792","memory_dynamic_min":"771489792","memory_static_min":"306184192","VCPUs_params":{},"VCPUs_max":"4","VCPUs_at_startup":"4","actions_after_shutdown":"destroy","actions_after_reboot":"destroy","actions_after_crash":"destroy","consoles":["OpaqueRef:93b9a9e8-ee26-5d0f-bdd9-53586a616349","OpaqueRef:c96463af-670f-cc36-09f5-c32b5d9101c8"],"VIFs":[],"VBDs":["OpaqueRef:10624386-01a5-2bbd-583a-af3dfdd78785"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{},"PCI_bus":"","other_config":{"storage_driver_domain":"OpaqueRef:0c1d3862-5a38-e4cc-4a46-d8358a622461","is_system_domain":"true"},"domid":"0","domarch":"x32","last_boot_CPU_flags":{},"is_control_domain":true,"metrics":"OpaqueRef:4693e2ee-5339-5186-b57e-576a85ecc628","guest_metrics":"OpaqueRef:NULL","last_booted_record":"('struct' ('uuid' '44536d07-7e6c-4b65-9b6b-cc7772ade225') ('allowed_operations' ('array')) ('current_operations' ('struct')) ('power_state' 'Running') ('name_label' 'Control domain on host: lab2') ('name_description' 'The domain which manages physical devices and manages other domains') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145') ('affinity' 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145') ('memory_overhead' '11534336') ('memory_target' '771489792') ('memory_static_max' '780140544') ('memory_dynamic_max' '771489792') ('memory_dynamic_min' '771489792') ('memory_static_min' '306184192') ('VCPUs_params' ('struct')) ('VCPUs_max' '4') ('VCPUs_at_startup' '4') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'destroy') ('actions_after_crash' 'destroy') ('consoles' ('array' 'OpaqueRef:7c70d535-4433-d99f-0f31-478bb7ac6f14' 'OpaqueRef:367bb106-2938-8b52-8d4e-98063011de78')) ('VIFs' ('array')) ('VBDs' ('array' 'OpaqueRef:10624386-01a5-2bbd-583a-af3dfdd78785')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' '') ('HVM_boot_params' ('struct')) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct')) ('PCI_bus' '') ('other_config' ('struct' ('storage_driver_domain' 'OpaqueRef:ff32de74-138c-9d80-ab58-c631d2aa0e71') ('is_system_domain' 'true'))) ('domid' '0') ('domarch' 'x32') ('last_boot_CPU_flags' ('struct')) ('is_control_domain' ('boolean' '1')) ('metrics' 'OpaqueRef:4693e2ee-5339-5186-b57e-576a85ecc628') ('guest_metrics' 'OpaqueRef:NULL') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct')) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '0') ('generation_id' '4303694227720731080:7462899430434593049'))","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"4303694227720731080:7462899430434593049","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed","$type":"VM"},"OpaqueRef:6ee1cc24-ebbb-b02a-88b0-a921c7a5f217":{"uuid":"42e9e31a-aae6-70fb-b189-81f4037e3604","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Red Hat Enterprise Linux 5 (64-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"76005a52-955c-a2cd-6d25-78cb02932e48","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel5":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:b96feb47-aea4-2850-1489-f93533cf0afb","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ee1cc24-ebbb-b02a-88b0-a921c7a5f217","$type":"VM"},"OpaqueRef:6b5be573-b116-6238-9cff-bde0658d6f18":{"uuid":"a0a5d8dc-3ab0-b136-7639-38cf33bcb6be","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"CentOS 4.7 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"ee9fb919-8353-2ab2-1d53-fc4a4be4a28f","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","machine-address-size":"36","suppress-spurious-page-faults":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:ffa1388e-5dce-e617-92d8-c1857f7f0dcd","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6b5be573-b116-6238-9cff-bde0658d6f18","$type":"VM"},"OpaqueRef:6a09a6de-e778-a474-4ebd-f617db5b5d5e":{"uuid":"36ed87c4-5444-190d-2bcf-fa60b32e37d1","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Oracle Enterprise Linux 6 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"3d9d5e3b-15cf-161c-3015-0341d3698190","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel6":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:a8101b62-3c8b-9025-790c-ae6e2fdf0dd3","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6a09a6de-e778-a474-4ebd-f617db5b5d5e","$type":"VM"},"OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64":{"uuid":"250160fb-ac75-21b6-3321-79610b055b43","allowed_operations":["changing_dynamic_range","migrate_send","pool_migrate","changing_VCPUs_live","suspend","hard_reboot","hard_shutdown","clean_reboot","clean_shutdown","pause","checkpoint","snapshot"],"current_operations":{},"power_state":"Running","name_label":"ceph4","name_description":"","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:4998c031-2261-a641-c883-823551890a18"],"VIFs":["OpaqueRef:b8df4453-542e-6c14-0eb1-174d48373bca"],"VBDs":["OpaqueRef:ddad92d6-e01f-f86c-d907-eceba775cd45","OpaqueRef:02ed17b8-6c41-9ac4-56f0-eb66ebcaa402"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","base_template_name":"Other install media","mac_seed":"428d1902-6029-6103-7ed6-5b3542a7049e","install-methods":"cdrom"},"domid":"32","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:93df4aea-923e-3442-082c-ff02778a98d1","guest_metrics":"OpaqueRef:993aa015-8b10-deec-9f7d-41447b2721a3","last_booted_record":"('struct' ('uuid' '250160fb-ac75-21b6-3321-79610b055b43') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:13b02329-20f2-fe04-204f-ca4c4a8303b0' 'start'))) ('power_state' 'Halted') ('name_label' 'ceph4') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '7340032') ('memory_target' '0') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:b8df4453-542e-6c14-0eb1-174d48373bca')) ('VBDs' ('array' 'OpaqueRef:ddad92d6-e01f-f86c-d907-eceba775cd45' 'OpaqueRef:02ed17b8-6c41-9ac4-56f0-eb66ebcaa402')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('base_template_name' 'Other install media') ('mac_seed' '428d1902-6029-6103-7ed6-5b3542a7049e') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:93df4aea-923e-3442-082c-ff02778a98d1') ('guest_metrics' 'OpaqueRef:8c77088e-f1d8-42f8-6d84-2e251138741b') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '0') ('generation_id' '2259634759398510504:9093813786231646530'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"2259634759398510504:9093813786231646530","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64","$type":"VM"},"OpaqueRef:616942c0-1e1b-e733-3c4c-7236fd3de158":{"uuid":"db23044d-372b-303d-2f59-d62d2a34a476","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 11 (64-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"dc5ecc02-2366-5148-4332-17c74fad7210","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"x86_64","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:555ac046-2e06-38e7-5458-402a6bb05b36","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:616942c0-1e1b-e733-3c4c-7236fd3de158","$type":"VM"},"OpaqueRef:5e93cf73-a212-a83f-d3f9-a539be98d320":{"uuid":"102e93a3-7e44-309f-4972-9c9bb4f6e299","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Red Hat Enterprise Linux 5 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"44ac1d8b-ce10-423d-427e-539db38eb0ef","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel5":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:030fa1f4-2160-09fe-5240-155411d8569b","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5e93cf73-a212-a83f-d3f9-a539be98d320","$type":"VM"},"OpaqueRef:56af2e14-d4bb-20e9-421b-00d75dfb89f2":{"uuid":"e6f2bbda-c103-9ceb-3eb9-2d04fc2e3d6f","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Red Hat Enterprise Linux 4.7 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"ef090285-4bb1-6470-6405-ceafcac160e0","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","machine-address-size":"36","suppress-spurious-page-faults":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:58e263a3-cd9f-b3b6-c023-b957d96cb6cf","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:56af2e14-d4bb-20e9-421b-00d75dfb89f2","$type":"VM"},"OpaqueRef:5059cc2d-b414-97eb-6aac-ce816b72b2bd":{"uuid":"f824b734-4783-0b4a-f1c2-9086f309472b","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Oracle Enterprise Linux 5 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"bb9fbcf0-f90b-f156-6c9e-2d2726b05929","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel5":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:49904297-9df4-2e36-7a0c-e663f8dea8d6","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5059cc2d-b414-97eb-6aac-ce816b72b2bd","$type":"VM"},"OpaqueRef:4a43ad28-b809-2c8f-aa24-70d8bd4954f2":{"uuid":"395ac580-be71-4e8d-3158-6f73da9d01f2","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 10 SP3 (64-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"ab51e32a-bd60-c5cc-58ff-c5e8bbdc6b17","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"x86_64","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:b2d16bbd-c707-3972-583e-b097f7863a15","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a43ad28-b809-2c8f-aa24-70d8bd4954f2","$type":"VM"},"OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d":{"uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","allowed_operations":["changing_dynamic_range","migrate_send","pool_migrate","changing_VCPUs_live","suspend","hard_reboot","hard_shutdown","clean_reboot","clean_shutdown","pause","checkpoint","snapshot"],"current_operations":{},"power_state":"Running","name_label":"Windows XP SP3","name_description":"XP with Xen Center","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","affinity":"OpaqueRef:NULL","memory_overhead":"11534336","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:a8807761-56dd-c5d7-5f4a-439c9978daca"],"VIFs":["OpaqueRef:aa874254-b67c-e9e3-6a08-1c770c2dd8ac"],"VBDs":["OpaqueRef:cbe5ad31-bf57-7096-029b-53d573f83fed","OpaqueRef:114cbf4c-64da-2d64-472e-9aee8e81b71b"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"3620","nx":"false","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","import_task":"OpaqueRef:27865e02-d1e0-635e-cb15-a7fd232fb7b4","base_template_name":"Windows XP SP3 (32-bit)","mac_seed":"1cbe7034-4e48-effc-ef98-be42606000ec","install-methods":"cdrom"},"domid":"1","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:fed7557b-f25b-c417-d8e0-776725e01bf4","guest_metrics":"OpaqueRef:f0dd0d3c-b110-9cf5-9fd7-ecb39a5d2bd4","last_booted_record":"('struct' ('uuid' '8635a18a-be54-3ddc-fee4-0b6818047579') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:1c659e1c-2c1d-18e0-60a6-76ea90ff42d8' 'start'))) ('power_state' 'Halted') ('name_label' 'Windows XP SP3') ('name_description' 'XP with Xen Center') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '11534336') ('memory_target' '1073741824') ('memory_static_max' '1073741824') ('memory_dynamic_max' '1073741824') ('memory_dynamic_min' '1073741824') ('memory_static_min' '268435456') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array' 'OpaqueRef:a8807761-56dd-c5d7-5f4a-439c9978daca')) ('VIFs' ('array' 'OpaqueRef:aa874254-b67c-e9e3-6a08-1c770c2dd8ac')) ('VBDs' ('array' 'OpaqueRef:cbe5ad31-bf57-7096-029b-53d573f83fed' 'OpaqueRef:114cbf4c-64da-2d64-472e-9aee8e81b71b')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '3592') ('nx' 'false') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('import_task' 'OpaqueRef:27865e02-d1e0-635e-cb15-a7fd232fb7b4') ('base_template_name' 'Windows XP SP3 (32-bit)') ('mac_seed' '1cbe7034-4e48-effc-ef98-be42606000ec') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:fed7557b-f25b-c417-d8e0-776725e01bf4') ('guest_metrics' 'OpaqueRef:174613aa-48a8-ea75-4bb6-97e1ee163183') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'Ref:69') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'Ref:69') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '2') ('generation_id' '4280696105530417353:6509589966385272225'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"Ref:69","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"Ref:69","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"2","generation_id":"4280696105530417353:6509589966385272225","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d","$type":"VM"},"OpaqueRef:466d7dc3-f2df-8c8d-685d-eef256fe2b43":{"uuid":"18f76e4e-424a-107c-01b7-58991c12c618","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows 7 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows 7 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"36700160","memory_target":"4294967296","memory_static_max":"4294967296","memory_dynamic_max":"4294967296","memory_dynamic_min":"4294967296","memory_static_min":"2147483648","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"0b9406be-f8b9-90bc-08ad-e21c9ddedee4","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:4bb32bd1-2508-8937-4d75-7c1046e58e7e","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:466d7dc3-f2df-8c8d-685d-eef256fe2b43","$type":"VM"},"OpaqueRef:4347e9d6-7faf-90e4-4f5f-d513cf44b3cc":{"uuid":"39253551-8691-78ec-3958-823acfc16849","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Red Hat Enterprise Linux 6 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"4e46b341-3f61-0f32-73e4-ae8ea365e327","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel6":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:f183f990-391a-24ce-75e3-ab933ba2d6f5","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4347e9d6-7faf-90e4-4f5f-d513cf44b3cc","$type":"VM"},"OpaqueRef:3c4558e8-ed88-ce88-81a9-111ac2cc56d6":{"uuid":"86a958ce-0166-005e-707b-a0b6e31102c6","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Other install media","name_description":"Template which allows VM installation from install media","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"5242880","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"fe81e3af-6e2e-f170-cb79-46d39fa1cef1","default_template":"true","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:26aaab4d-e490-0d27-812e-e5d79fa11c25","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3c4558e8-ed88-ce88-81a9-111ac2cc56d6","$type":"VM"},"OpaqueRef:3b97e45b-aa4e-d175-95e5-e95ceefa0b6b":{"uuid":"aeda190d-3612-1099-e841-df7b2060ffe8","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"CentOS 6 (64-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"a4106404-6209-1374-627c-575b9145984b","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel6":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:458ffecc-0375-173a-470e-e74dfffd0a74","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3b97e45b-aa4e-d175-95e5-e95ceefa0b6b","$type":"VM"},"OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43":{"uuid":"bb5450a6-8c13-5197-57df-837ea4bec840","allowed_operations":["destroy","export","revert","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"before","name_description":"","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":["OpaqueRef:bf4da755-480b-e3fd-2bfe-f53e7204c8ae"],"VBDs":["OpaqueRef:2bcdb877-1b69-a94e-b391-25f9533c3d42","OpaqueRef:2aabb82d-fc1e-48db-6d2e-689e6619b310"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"timeoffset":"0","nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","instant":"true","base_template_name":"Other install media","mac_seed":"39345550-a86b-01e6-275b-24181c417856","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:5d79dc3c-724e-5d58-61a3-21d02bff4f9f","guest_metrics":"OpaqueRef:100abe2c-f466-d7ce-15eb-4f9adfb7e14b","last_booted_record":"('struct' ('uuid' 'dd04ba80-a9c9-bcca-19f2-8249ce816546') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:5f401076-a716-a496-1e74-399b752047a7' 'start'))) ('power_state' 'Halted') ('name_label' 'auths1') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '7340032') ('memory_target' '0') ('memory_static_max' '536870912') ('memory_dynamic_max' '536870912') ('memory_dynamic_min' '536870912') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf')) ('VBDs' ('array' 'OpaqueRef:65c3b9df-5b63-4f73-067d-34540eb89f56' 'OpaqueRef:9c79f0d5-5980-6f28-0240-6cdb42b31876')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' 'BIOS order') ('HVM_boot_params' ('struct' ('order' 'dc'))) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('timeoffset' '0') ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('instant' 'true') ('base_template_name' 'Other install media') ('mac_seed' '39345550-a86b-01e6-275b-24181c417856') ('install-methods' 'cdrom'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:75125f8c-b90e-731d-bc1c-84089306afed') ('guest_metrics' 'OpaqueRef:1b7597af-46e4-8b94-2dfa-aae404f440da') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '0') ('generation_id' '5202674002911672539:6785018360954601688'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":true,"snapshot_of":"OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861","snapshots":[],"snapshot_time":"2013-11-13T14:22:47.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{"disk-snapshot-type":"crash_consistent","power-state-at-snapshot":"Running"},"snapshot_metadata":"(('xenstore_data' '((\\'vm-data\\' \\'\\'))') ('version' '0') ('uuid' 'dd04ba80-a9c9-bcca-19f2-8249ce816546') ('user_version' '1') ('transportable_snapshot_id' '') ('tags' '()') ('suspend_VDI' 'OpaqueRef:NULL') ('suspend_SR' 'OpaqueRef:NULL') ('start_delay' '0') ('snapshots' '()') ('snapshot_time' '19700101T00:00:00Z') ('snapshot_of' 'OpaqueRef:NULL') ('snapshot_metadata' '') ('snapshot_info' '()') ('shutdown_delay' '0') ('scheduled_to_be_resident_on' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692') ('recommendations' '') ('protection_policy' 'OpaqueRef:NULL') ('power_state' 'Running') ('platform' '((\\'timeoffset\\' \\'0\\') (\\'nx\\' \\'true\\') (\\'acpi\\' \\'1\\') (\\'apic\\' \\'true\\') (\\'pae\\' \\'true\\') (\\'viridian\\' \\'true\\'))') ('parent' 'OpaqueRef:NULL') ('other_config' '((\\'vgpu_pci\\' \\'\\') (\\'instant\\' \\'true\\') (\\'base_template_name\\' \\'Other install media\\') (\\'mac_seed\\' \\'39345550-a86b-01e6-275b-24181c417856\\') (\\'install-methods\\' \\'cdrom\\'))') ('order' '0') ('name__label' 'auths1') ('name__description' '') ('metrics' 'OpaqueRef:75125f8c-b90e-731d-bc1c-84089306afed') ('memory__target' '536870912') ('memory__static_min' '134217728') ('memory__static_max' '536870912') ('memory__overhead' '7340032') ('memory__dynamic_min' '536870912') ('memory__dynamic_max' '536870912') ('last_booted_record' '(\\'struct\\' (\\'uuid\\' \\'dd04ba80-a9c9-bcca-19f2-8249ce816546\\') (\\'allowed_operations\\' (\\'array\\')) (\\'current_operations\\' (\\'struct\\' (\\'OpaqueRef:5f401076-a716-a496-1e74-399b752047a7\\' \\'start\\'))) (\\'power_state\\' \\'Halted\\') (\\'name_label\\' \\'auths1\\') (\\'name_description\\' \\'\\') (\\'user_version\\' \\'1\\') (\\'is_a_template\\' (\\'boolean\\' \\'0\\')) (\\'suspend_VDI\\' \\'OpaqueRef:NULL\\') (\\'resident_on\\' \\'OpaqueRef:NULL\\') (\\'affinity\\' \\'OpaqueRef:NULL\\') (\\'memory_overhead\\' \\'7340032\\') (\\'memory_target\\' \\'0\\') (\\'memory_static_max\\' \\'536870912\\') (\\'memory_dynamic_max\\' \\'536870912\\') (\\'memory_dynamic_min\\' \\'536870912\\') (\\'memory_static_min\\' \\'134217728\\') (\\'VCPUs_params\\' (\\'struct\\')) (\\'VCPUs_max\\' \\'1\\') (\\'VCPUs_at_startup\\' \\'1\\') (\\'actions_after_shutdown\\' \\'destroy\\') (\\'actions_after_reboot\\' \\'restart\\') (\\'actions_after_crash\\' \\'restart\\') (\\'consoles\\' (\\'array\\')) (\\'VIFs\\' (\\'array\\' \\'OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf\\')) (\\'VBDs\\' (\\'array\\' \\'OpaqueRef:65c3b9df-5b63-4f73-067d-34540eb89f56\\' \\'OpaqueRef:9c79f0d5-5980-6f28-0240-6cdb42b31876\\')) (\\'crash_dumps\\' (\\'array\\')) (\\'VTPMs\\' (\\'array\\')) (\\'PV_bootloader\\' \\'\\') (\\'PV_kernel\\' \\'\\') (\\'PV_ramdisk\\' \\'\\') (\\'PV_args\\' \\'\\') (\\'PV_bootloader_args\\' \\'\\') (\\'PV_legacy_args\\' \\'\\') (\\'HVM_boot_policy\\' \\'BIOS order\\') (\\'HVM_boot_params\\' (\\'struct\\' (\\'order\\' \\'dc\\'))) (\\'HVM_shadow_multiplier\\' (\\'double\\' \\'1\\')) (\\'platform\\' (\\'struct\\' (\\'timeoffset\\' \\'0\\') (\\'nx\\' \\'true\\') (\\'acpi\\' \\'1\\') (\\'apic\\' \\'true\\') (\\'pae\\' \\'true\\') (\\'viridian\\' \\'true\\'))) (\\'PCI_bus\\' \\'\\') (\\'other_config\\' (\\'struct\\' (\\'vgpu_pci\\' \\'\\') (\\'instant\\' \\'true\\') (\\'base_template_name\\' \\'Other install media\\') (\\'mac_seed\\' \\'39345550-a86b-01e6-275b-24181c417856\\') (\\'install-methods\\' \\'cdrom\\'))) (\\'domid\\' \\'-1\\') (\\'domarch\\' \\'\\') (\\'last_boot_CPU_flags\\' (\\'struct\\' (\\'vendor\\' \\'GenuineIntel\\') (\\'features\\' \\'77bae3ff-bfebfbff-00000001-28100800\\'))) (\\'is_control_domain\\' (\\'boolean\\' \\'0\\')) (\\'metrics\\' \\'OpaqueRef:75125f8c-b90e-731d-bc1c-84089306afed\\') (\\'guest_metrics\\' \\'OpaqueRef:1b7597af-46e4-8b94-2dfa-aae404f440da\\') (\\'last_booted_record\\' \\'\\') (\\'recommendations\\' \\'\\') (\\'xenstore_data\\' (\\'struct\\' (\\'vm-data\\' \\'\\'))) (\\'ha_always_run\\' (\\'boolean\\' \\'0\\')) (\\'ha_restart_priority\\' \\'\\') (\\'is_a_snapshot\\' (\\'boolean\\' \\'0\\')) (\\'snapshot_of\\' \\'OpaqueRef:NULL\\') (\\'snapshots\\' (\\'array\\')) (\\'snapshot_time\\' (\\'dateTime.iso8601\\' \\'19700101T00:00:00Z\\')) (\\'transportable_snapshot_id\\' \\'\\') (\\'blobs\\' (\\'struct\\')) (\\'tags\\' (\\'array\\')) (\\'blocked_operations\\' (\\'struct\\')) (\\'snapshot_info\\' (\\'struct\\')) (\\'snapshot_metadata\\' \\'\\') (\\'parent\\' \\'OpaqueRef:NULL\\') (\\'children\\' (\\'array\\')) (\\'bios_strings\\' (\\'struct\\')) (\\'protection_policy\\' \\'OpaqueRef:NULL\\') (\\'is_snapshot_from_vmpp\\' (\\'boolean\\' \\'0\\')) (\\'appliance\\' \\'OpaqueRef:NULL\\') (\\'start_delay\\' \\'0\\') (\\'shutdown_delay\\' \\'0\\') (\\'order\\' \\'0\\') (\\'VGPUs\\' (\\'array\\')) (\\'attached_PCIs\\' (\\'array\\')) (\\'suspend_SR\\' \\'OpaqueRef:NULL\\') (\\'version\\' \\'0\\') (\\'generation_id\\' \\'5202674002911672539:6785018360954601688\\'))') ('last_boot_CPU_flags' '((\\'vendor\\' \\'GenuineIntel\\') (\\'features\\' \\'77bae3ff-bfebfbff-00000001-28100800\\'))') ('is_snapshot_from_vmpp' 'false') ('is_control_domain' 'false') ('is_a_template' 'false') ('is_a_snapshot' 'false') ('ha_restart_priority' '') ('ha_always_run' 'false') ('guest_metrics' 'OpaqueRef:7888003b-e4c9-ab5d-9dda-1177127fa6a6') ('generation_id' '5202674002911672539:6785018360954601688') ('domid' '2') ('domarch' '') ('current_operations' '((\\'OpaqueRef:24747fa8-b97b-4775-c892-550e4de397f5\\' \\'snapshot\\'))') ('crash_dumps' '()') ('consoles' '(\\'OpaqueRef:cf50066b-aff7-10b1-45d1-9b8edff9dc97\\')') ('children' '()') ('blocked_operations' '()') ('blobs' '()') ('bios_strings' '((\\'bios-vendor\\' \\'Xen\\') (\\'bios-version\\' \\'\\') (\\'system-manufacturer\\' \\'Xen\\') (\\'system-product-name\\' \\'HVM domU\\') (\\'system-version\\' \\'\\') (\\'system-serial-number\\' \\'\\') (\\'hp-rombios\\' \\'\\') (\\'oem-1\\' \\'Xen\\') (\\'oem-2\\' \\'MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d\\'))') ('attached_PCIs' '()') ('appliance' 'OpaqueRef:NULL') ('allowed_operations' '(\\'checkpoint\\' \\'snapshot\\')') ('affinity' 'OpaqueRef:NULL') ('actions__after_shutdown' 'destroy') ('actions__after_reboot' 'restart') ('actions__after_crash' 'restart') ('_ref' 'OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861') ('VTPMs' '()') ('VIFs' '(\\'OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf\\')') ('VGPUs' '()') ('VCPUs__params' '()') ('VCPUs__max' '1') ('VCPUs__at_startup' '1') ('VBDs' '(\\'OpaqueRef:65c3b9df-5b63-4f73-067d-34540eb89f56\\' \\'OpaqueRef:9c79f0d5-5980-6f28-0240-6cdb42b31876\\')') ('PV__ramdisk' '') ('PV__legacy_args' '') ('PV__kernel' '') ('PV__bootloader_args' '') ('PV__bootloader' '') ('PV__args' '') ('PCI_bus' '') ('HVM__shadow_multiplier' '1') ('HVM__boot_policy' 'BIOS order') ('HVM__boot_params' '((\\'order\\' \\'dc\\'))'))","parent":"OpaqueRef:NULL","children":["OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861"],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"4154784612728723943:6689437203246246623","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43","$type":"VM"},"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675":{"uuid":"e1b1bd7f-2022-4a5b-8314-bbbf20573575","allowed_operations":["changing_dynamic_range"],"current_operations":{},"power_state":"Running","name_label":"Control domain on host: lab1","name_description":"The domain which manages physical devices and manages other domains","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","affinity":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","memory_overhead":"11534336","memory_target":"780140544","memory_static_max":"780140544","memory_dynamic_max":"405798912","memory_dynamic_min":"405798912","memory_static_min":"300941312","VCPUs_params":{},"VCPUs_max":"4","VCPUs_at_startup":"4","actions_after_shutdown":"destroy","actions_after_reboot":"destroy","actions_after_crash":"destroy","consoles":["OpaqueRef:fae5dd13-3a86-52c5-2edf-f4763a6d6152","OpaqueRef:1b60146a-7936-03ae-6c08-d56263cf4fc2"],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{},"PCI_bus":"","other_config":{"storage_driver_domain":"OpaqueRef:12e1d8fa-af07-ad26-91f0-9e8f00068a3e","is_system_domain":"true","perfmon":""},"domid":"0","domarch":"x32","last_boot_CPU_flags":{},"is_control_domain":true,"metrics":"OpaqueRef:2e341eed-60aa-d1df-0656-b6ca7ad439f9","guest_metrics":"OpaqueRef:NULL","last_booted_record":"('struct' ('uuid' 'e1b1bd7f-2022-4a5b-8314-bbbf20573575') ('allowed_operations' ('array' 'changing_dynamic_range')) ('current_operations' ('struct')) ('power_state' 'Running') ('name_label' 'Control domain on host: lab1') ('name_description' 'The domain which manages physical devices and manages other domains') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692') ('affinity' 'OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692') ('memory_overhead' '11534336') ('memory_target' '405798912') ('memory_static_max' '780140544') ('memory_dynamic_max' '405798912') ('memory_dynamic_min' '405798912') ('memory_static_min' '300941312') ('VCPUs_params' ('struct')) ('VCPUs_max' '4') ('VCPUs_at_startup' '4') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'destroy') ('actions_after_crash' 'destroy') ('consoles' ('array' 'OpaqueRef:fae5dd13-3a86-52c5-2edf-f4763a6d6152' 'OpaqueRef:1b60146a-7936-03ae-6c08-d56263cf4fc2')) ('VIFs' ('array')) ('VBDs' ('array')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' '') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' '') ('HVM_boot_params' ('struct')) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct')) ('PCI_bus' '') ('other_config' ('struct' ('storage_driver_domain' 'OpaqueRef:12e1d8fa-af07-ad26-91f0-9e8f00068a3e') ('is_system_domain' 'true') ('perfmon' ''))) ('domid' '0') ('domarch' 'x32') ('last_boot_CPU_flags' ('struct')) ('is_control_domain' ('boolean' '1')) ('metrics' 'OpaqueRef:2e341eed-60aa-d1df-0656-b6ca7ad439f9') ('guest_metrics' 'OpaqueRef:NULL') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct')) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '0') ('generation_id' '7229528039966242236:525432007953199374'))","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"7229528039966242236:525432007953199374","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675","$type":"VM"},"OpaqueRef:2e3b5ada-5083-87b1-d6fb-aaa0e5bd862d":{"uuid":"ce0672bb-3a69-fbf0-0d6c-e06fc744f046","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows Server 2003 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows Server 2003 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"ba9ce3e2-d738-5f03-aff5-791340fbf9cb","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:fcafd189-1279-c5a0-8b36-73f022d0e848","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2e3b5ada-5083-87b1-d6fb-aaa0e5bd862d","$type":"VM"},"OpaqueRef:2b6e3248-52b0-85d1-7415-4f91a0a90a3a":{"uuid":"841b1e8c-4af9-f862-f18d-0319582a75b6","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"CentOS 5 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"279999db-88c5-66ae-bd7a-81dcda64dffe","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel5":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:1aee5fbb-132d-df9f-daa8-38254df5b98a","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2b6e3248-52b0-85d1-7415-4f91a0a90a3a","$type":"VM"},"OpaqueRef:2a838052-3aa3-d09d-1eae-8293a565fef5":{"uuid":"9f0c4216-310d-9424-cdbf-321115a68938","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows 8 (32-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows 8 (32-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"19922944","memory_target":"2147483648","memory_static_max":"2147483648","memory_dynamic_max":"2147483648","memory_dynamic_min":"2147483648","memory_static_min":"1073741824","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","vga":"std","videoram":"8","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"e17d68e8-547e-3d0c-24f2-7e0eacb1a9b8","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:16d361e5-ed4b-e371-59d3-54deb132238b","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"0:0","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2a838052-3aa3-d09d-1eae-8293a565fef5","$type":"VM"},"OpaqueRef:2a092eee-7c6a-058b-0368-b37362328678":{"uuid":"8420bacd-760a-ab9f-15dc-f1d189d0bdea","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 11 (32-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"e8608231-053d-adce-ba92-f812b6f239ad","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"i386","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:060eb48d-36e0-6107-8837-d0ccb03140fd","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2a092eee-7c6a-058b-0368-b37362328678","$type":"VM"},"OpaqueRef:2968283f-8656-6e31-816c-e96325e66ebf":{"uuid":"737ce950-11aa-3947-64ce-32238eef4906","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"CentOS 4.8 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"916e50ef-2a24-5060-63c8-8c6122a12992","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","machine-address-size":"36","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:2d047d58-380c-83aa-3d3a-5bf1bf63aa9d","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2968283f-8656-6e31-816c-e96325e66ebf","$type":"VM"},"OpaqueRef:27ad4e06-a7b2-20a2-4fd9-7f1b54fdc5a2":{"uuid":"771a3426-faeb-1072-801a-2bbd736083c5","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 10 SP2 (64-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"772cc2b8-4cc1-7899-6f9f-312490afa909","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"x86_64","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:28a7521d-183c-4510-3d19-44dd494683da","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:27ad4e06-a7b2-20a2-4fd9-7f1b54fdc5a2","$type":"VM"},"OpaqueRef:217d930f-8e65-14e6-eb20-63d55158093f":{"uuid":"60630c23-e9c8-6489-077a-5757ecadae3b","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Red Hat Enterprise Linux 6 (64-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"c1d10e0a-ddf9-d1c1-0bed-6549c5e77f44","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","rhel6":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:dcc20f2c-17cc-d2fd-0ebf-36cb061c691e","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:217d930f-8e65-14e6-eb20-63d55158093f","$type":"VM"},"OpaqueRef:20377446-2388-5c8f-d3f2-6e9c883c61d9":{"uuid":"c3e2e88a-ae88-ae41-e901-2880f16dd14a","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows XP SP3 (32-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows XP SP3 (32-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"7340032","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"false","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"31857411-f5c1-6519-7527-fa6a19db2376","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:3f2f9b2f-962e-1366-048e-062bff51dd71","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:20377446-2388-5c8f-d3f2-6e9c883c61d9","$type":"VM"},"OpaqueRef:201cf416-bfd0-00d3-a4d2-b19226c43c82":{"uuid":"d58451a0-6b0f-8a0a-add0-5de7dc1e3fbc","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Ubuntu Precise Pangolin 12.04 (64-bit)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"9784ca7b-c0a8-f8e5-3436-3ea7436cf885","default_template":"true","linux_template":"true","install-methods":"cdrom,http,ftp","install-arch":"amd64","debian-release":"precise","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:83fd8c0b-28cd-069d-415c-0d48ade21902","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:201cf416-bfd0-00d3-a4d2-b19226c43c82","$type":"VM"},"OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b":{"uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","allowed_operations":["changing_dynamic_range","migrate_send","pool_migrate","changing_VCPUs_live","suspend","hard_reboot","hard_shutdown","clean_reboot","clean_shutdown","pause","checkpoint","snapshot"],"current_operations":{},"power_state":"Running","name_label":"XOA","name_description":"XO Appliance","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:8ec5125f-facc-e687-a3b3-9221c7bd24e9","OpaqueRef:051afea0-385e-d81c-670a-f5a878b3a7b1"],"VIFs":["OpaqueRef:c5977d9b-cb50-a615-8488-1dd105d69802"],"VBDs":["OpaqueRef:df9a34c9-aa6e-54d4-4993-25ec255b01b8","OpaqueRef:92bd7132-d71b-6632-a9fb-05ca21eb7430"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"pygrub","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","import_task":"OpaqueRef:9a3d9eed-88c7-2a4a-c836-ebcd14d8c41d","mac_seed":"22ba6148-dfd6-d06f-6f69-ca73c6b50a32","debian-release":"wheezy","install-methods":"cdrom,http,ftp","install-arch":"amd64","base_template_name":"Debian Wheezy 7.0 (64-bit)","install-repository":"cdrom","linux_template":"true"},"domid":"37","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:79ed3cef-4b3e-fb08-9525-24c4e4bfdd8d","guest_metrics":"OpaqueRef:950ba97a-ad8c-7a91-df75-8326676c566a","last_booted_record":"('struct' ('uuid' '9818876c-2a88-b3d4-da98-b63346bd2e80') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:59c850b1-77af-55cc-409e-661e2fd702e7' 'start'))) ('power_state' 'Halted') ('name_label' 'XOA') ('name_description' 'XO Appliance') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '4194304') ('memory_target' '268435456') ('memory_static_max' '268435456') ('memory_dynamic_max' '268435456') ('memory_dynamic_min' '268435456') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '1') ('VCPUs_at_startup' '1') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array' 'OpaqueRef:b06316c0-f8b9-0810-5e29-430ca0653e76' 'OpaqueRef:597b524f-52d2-cdea-060f-0b1cfadb9c23')) ('VIFs' ('array' 'OpaqueRef:c5977d9b-cb50-a615-8488-1dd105d69802')) ('VBDs' ('array' 'OpaqueRef:df9a34c9-aa6e-54d4-4993-25ec255b01b8' 'OpaqueRef:92bd7132-d71b-6632-a9fb-05ca21eb7430')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' 'pygrub') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '-- quiet console=hvc0') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' '') ('HVM_boot_params' ('struct')) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('import_task' 'OpaqueRef:9a3d9eed-88c7-2a4a-c836-ebcd14d8c41d') ('mac_seed' '22ba6148-dfd6-d06f-6f69-ca73c6b50a32') ('debian-release' 'wheezy') ('install-methods' 'cdrom,http,ftp') ('install-arch' 'amd64') ('base_template_name' 'Debian Wheezy 7.0 (64-bit)') ('install-repository' 'cdrom') ('linux_template' 'true'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:79ed3cef-4b3e-fb08-9525-24c4e4bfdd8d') ('guest_metrics' 'OpaqueRef:13070b5b-363f-8fde-aa44-a9beccc844d3') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:NULL') ('version' '0') ('generation_id' '6210529179445707452:5515490297967581759'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"6210529179445707452:5515490297967581759","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b","$type":"VM"},"OpaqueRef:1ed4ee31-56e0-98da-65d4-00c776716b9c":{"uuid":"793dbeaf-4131-c35b-982d-4aef40348f2f","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Red Hat Enterprise Linux 4.6 (32-bit)","name_description":"Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"6291456","memory_target":"536870912","memory_static_max":"536870912","memory_dynamic_max":"536870912","memory_dynamic_min":"536870912","memory_static_min":"268435456","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"graphical utf8","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"dd4f727f-9155-5b1c-189e-9da0895703c5","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","suppress-spurious-page-faults":"true","disks":"","install-distro":"rhlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:08727885-70fc-ca44-7ed5-9700436e396f","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1ed4ee31-56e0-98da-65d4-00c776716b9c","$type":"VM"},"OpaqueRef:1c0b590d-563b-5061-a253-f98535ab8389":{"uuid":"3c92061f-1b2a-9df4-d691-847f705ba812","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Ubuntu Maverick Meerkat 10.10 (32-bit) (experimental)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"f78bab49-f9dc-9669-c1c6-d2c6c4850bfb","default_template":"true","linux_template":"true","install-methods":"http,ftp","install-arch":"i386","debian-release":"maverick","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:bd0c87d4-d453-1aea-32bc-2596aca9dd4f","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1c0b590d-563b-5061-a253-f98535ab8389","$type":"VM"},"OpaqueRef:1be0fe3b-1944-06db-3734-b6bb888cfe78":{"uuid":"a623f631-13e9-407a-8031-4d1555fd536f","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Citrix XenApp on Windows Server 2008 R2 (64-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Citrix XenApp on Windows Server 2008 R2 (64-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"39845888","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":4,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"4d294046-d787-c73d-06a7-20f1ecf3cd50","default_template":"true","disks":"","install-methods":"cdrom","application_template":"1"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:becf1e7c-455b-b262-633e-b3cf23c892ee","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1be0fe3b-1944-06db-3734-b6bb888cfe78","$type":"VM"},"OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb":{"uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","make_into_template","destroy","export","start_on","start","clone","copy","snapshot"],"current_operations":{},"power_state":"Halted","name_label":"Debian PV","name_description":"","user_version":"1","is_a_template":false,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"22020096","memory_target":"2147483648","memory_static_max":"2147483648","memory_dynamic_max":"2147483648","memory_dynamic_min":"2147483648","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"4","VCPUs_at_startup":"4","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":["OpaqueRef:e7a986fc-bb34-55ed-f15d-bb87caf7fb78","OpaqueRef:c9e4e125-b855-eeec-2f48-a540fba73ba0"],"VIFs":["OpaqueRef:b5980de3-1a74-9f57-1e98-2a74184211dc"],"VBDs":["OpaqueRef:f3dcf37c-62bd-ee82-32d9-c4467bd57354","OpaqueRef:8d8f3b85-e00d-1dfa-963a-4a8f0cdc04b5"],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"pygrub","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"vgpu_pci":"","debian-release":"wheezy","install-methods":"cdrom,http,ftp","install-arch":"amd64","mac_seed":"74dcdb5f-d22a-c221-737c-5d78d0211e04","base_template_name":"Debian Wheezy 7.0 (64-bit)","install-repository":"cdrom","linux_template":"true"},"domid":"-1","domarch":"","last_boot_CPU_flags":{"vendor":"GenuineIntel","features":"77bae3ff-bfebfbff-00000001-28100800"},"is_control_domain":false,"metrics":"OpaqueRef:ed0a83fb-33f6-3d0b-25cc-a1d62acb2ec8","guest_metrics":"OpaqueRef:NULL","last_booted_record":"('struct' ('uuid' 'e87f47c3-0057-69a2-72c8-6a5df168af43') ('allowed_operations' ('array')) ('current_operations' ('struct' ('OpaqueRef:68abc4a1-00a2-a785-623b-61a5ab16c85b' 'start'))) ('power_state' 'Halted') ('name_label' 'Debian PV') ('name_description' '') ('user_version' '1') ('is_a_template' ('boolean' '0')) ('suspend_VDI' 'OpaqueRef:NULL') ('resident_on' 'OpaqueRef:NULL') ('affinity' 'OpaqueRef:NULL') ('memory_overhead' '22020096') ('memory_target' '0') ('memory_static_max' '2147483648') ('memory_dynamic_max' '2147483648') ('memory_dynamic_min' '2147483648') ('memory_static_min' '134217728') ('VCPUs_params' ('struct')) ('VCPUs_max' '4') ('VCPUs_at_startup' '4') ('actions_after_shutdown' 'destroy') ('actions_after_reboot' 'restart') ('actions_after_crash' 'restart') ('consoles' ('array')) ('VIFs' ('array' 'OpaqueRef:b5980de3-1a74-9f57-1e98-2a74184211dc')) ('VBDs' ('array' 'OpaqueRef:f3dcf37c-62bd-ee82-32d9-c4467bd57354' 'OpaqueRef:8d8f3b85-e00d-1dfa-963a-4a8f0cdc04b5')) ('crash_dumps' ('array')) ('VTPMs' ('array')) ('PV_bootloader' 'pygrub') ('PV_kernel' '') ('PV_ramdisk' '') ('PV_args' '-- quiet console=hvc0') ('PV_bootloader_args' '') ('PV_legacy_args' '') ('HVM_boot_policy' '') ('HVM_boot_params' ('struct')) ('HVM_shadow_multiplier' ('double' '1')) ('platform' ('struct' ('nx' 'true') ('acpi' '1') ('apic' 'true') ('pae' 'true') ('viridian' 'true'))) ('PCI_bus' '') ('other_config' ('struct' ('vgpu_pci' '') ('debian-release' 'wheezy') ('install-methods' 'cdrom,http,ftp') ('install-arch' 'amd64') ('mac_seed' '74dcdb5f-d22a-c221-737c-5d78d0211e04') ('base_template_name' 'Debian Wheezy 7.0 (64-bit)') ('install-repository' 'cdrom') ('linux_template' 'true'))) ('domid' '-1') ('domarch' '') ('last_boot_CPU_flags' ('struct' ('vendor' 'GenuineIntel') ('features' '77bae3ff-bfebfbff-00000001-28100800'))) ('is_control_domain' ('boolean' '0')) ('metrics' 'OpaqueRef:ed0a83fb-33f6-3d0b-25cc-a1d62acb2ec8') ('guest_metrics' 'OpaqueRef:NULL') ('last_booted_record' '') ('recommendations' '') ('xenstore_data' ('struct' ('vm-data' ''))) ('ha_always_run' ('boolean' '0')) ('ha_restart_priority' '') ('is_a_snapshot' ('boolean' '0')) ('snapshot_of' 'OpaqueRef:NULL') ('snapshots' ('array')) ('snapshot_time' ('dateTime.iso8601' '19700101T00:00:00Z')) ('transportable_snapshot_id' '') ('blobs' ('struct')) ('tags' ('array')) ('blocked_operations' ('struct')) ('snapshot_info' ('struct')) ('snapshot_metadata' '') ('parent' 'OpaqueRef:NULL') ('children' ('array')) ('bios_strings' ('struct')) ('protection_policy' 'OpaqueRef:NULL') ('is_snapshot_from_vmpp' ('boolean' '0')) ('appliance' 'OpaqueRef:NULL') ('start_delay' '0') ('shutdown_delay' '0') ('order' '0') ('VGPUs' ('array')) ('attached_PCIs' ('array')) ('suspend_SR' 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee') ('version' '0') ('generation_id' '4253060968988963652:5461973877952698434'))","recommendations":"","xenstore_data":{"vm-data":""},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{"bios-vendor":"Xen","bios-version":"","system-manufacturer":"Xen","system-product-name":"HVM domU","system-version":"","system-serial-number":"","hp-rombios":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d"},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","version":"0","generation_id":"4253060968988963652:5461973877952698434","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb","$type":"VM"},"OpaqueRef:12d0dfc0-ce63-a072-3cd0-ccba7bd3c200":{"uuid":"50248c00-a2e6-a62d-10ef-98c4471064c4","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Windows Server 2008 (32-bit)","name_description":"Clones of this template will automatically provision their storage when first booted and then reconfigure themselves with the optimal settings for Windows Server 2008 (32-bit).","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"11534336","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"","PV_kernel":"","PV_ramdisk":"","PV_args":"","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"BIOS order","HVM_boot_params":{"order":"dc"},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true","device_id":"0002"},"PCI_bus":"","other_config":{"mac_seed":"705c4f5e-7df0-da23-04b1-3e0e7ab33ab2","default_template":"true","disks":"","install-methods":"cdrom"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:54e060ee-40b2-6222-452d-38220f0b176c","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:12d0dfc0-ce63-a072-3cd0-ccba7bd3c200","$type":"VM"},"OpaqueRef:039273c3-b4b2-5c68-63e4-c5610a738fe3":{"uuid":"dc48c705-8d08-9e81-b71b-2aabf8b49e96","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"SUSE Linux Enterprise Server 10 SP3 (32-bit)","name_description":"Template that allows VM installation from Xen-aware SLES-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:/// or nfs:server:/","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"10485760","memory_target":"1073741824","memory_static_max":"1073741824","memory_dynamic_max":"1073741824","memory_dynamic_min":"1073741824","memory_static_min":"536870912","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"console=ttyS0 xencons=ttyS","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"87752c83-cd56-f63e-bad0-e3079def52c4","default_template":"true","linux_template":"true","install-methods":"cdrom,nfs,http,ftp","install-arch":"i386","disks":"","install-distro":"sleslike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:2f683bf1-a4aa-f370-6007-51b891806dbd","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:039273c3-b4b2-5c68-63e4-c5610a738fe3","$type":"VM"},"OpaqueRef:030314a2-0909-9e7a-418a-9f38746aaf0c":{"uuid":"d9aa9913-5935-989c-fd66-f46ac5816f63","allowed_operations":["changing_dynamic_range","changing_shadow_memory","changing_static_range","provision","export","clone","copy"],"current_operations":{},"power_state":"Halted","name_label":"Ubuntu Maverick Meerkat 10.10 (64-bit) (experimental)","name_description":"Template that allows VM installation from Xen-aware Debian-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http:///","user_version":"1","is_a_template":true,"suspend_VDI":"OpaqueRef:NULL","resident_on":"OpaqueRef:NULL","affinity":"OpaqueRef:NULL","memory_overhead":"4194304","memory_target":"268435456","memory_static_max":"268435456","memory_dynamic_max":"268435456","memory_dynamic_min":"268435456","memory_static_min":"134217728","VCPUs_params":{},"VCPUs_max":"1","VCPUs_at_startup":"1","actions_after_shutdown":"destroy","actions_after_reboot":"restart","actions_after_crash":"restart","consoles":[],"VIFs":[],"VBDs":[],"crash_dumps":[],"VTPMs":[],"PV_bootloader":"eliloader","PV_kernel":"","PV_ramdisk":"","PV_args":"-- quiet console=hvc0","PV_bootloader_args":"","PV_legacy_args":"","HVM_boot_policy":"","HVM_boot_params":{},"HVM_shadow_multiplier":1,"platform":{"nx":"true","acpi":"1","apic":"true","pae":"true","viridian":"true"},"PCI_bus":"","other_config":{"mac_seed":"f76242df-5e5e-e157-0cec-69097020851a","default_template":"true","linux_template":"true","install-methods":"http,ftp","install-arch":"amd64","debian-release":"maverick","disks":"","install-distro":"debianlike"},"domid":"-1","domarch":"","last_boot_CPU_flags":{},"is_control_domain":false,"metrics":"OpaqueRef:69cbbe3d-adc8-e876-10e1-6a337975f9b2","guest_metrics":"OpaqueRef:NULL","last_booted_record":"","recommendations":"","xenstore_data":{},"ha_always_run":false,"ha_restart_priority":"","is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","transportable_snapshot_id":"","blobs":{},"tags":[],"blocked_operations":{},"snapshot_info":{},"snapshot_metadata":"","parent":"OpaqueRef:NULL","children":[],"bios_strings":{},"protection_policy":"OpaqueRef:NULL","is_snapshot_from_vmpp":false,"appliance":"OpaqueRef:NULL","start_delay":"0","shutdown_delay":"0","order":"0","VGPUs":[],"attached_PCIs":[],"suspend_SR":"OpaqueRef:NULL","version":"0","generation_id":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:030314a2-0909-9e7a-418a-9f38746aaf0c","$type":"VM"},"OpaqueRef:ffa1388e-5dce-e617-92d8-c1857f7f0dcd":{"uuid":"78008d14-69ba-84df-0a54-490155787f29","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ffa1388e-5dce-e617-92d8-c1857f7f0dcd","$type":"VM_metrics"},"OpaqueRef:fed7557b-f25b-c417-d8e0-776725e01bf4":{"uuid":"a4af2b83-5e6a-d188-3e49-63f94516c728","memory_actual":"1073700864","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2014-01-11T14:12:32.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fed7557b-f25b-c417-d8e0-776725e01bf4","$type":"VM_metrics"},"OpaqueRef:fd9a9893-0cb0-e54b-067a-bc090453f1de":{"uuid":"0141e4a3-06e8-60ee-9958-bd37a79c1a9b","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fd9a9893-0cb0-e54b-067a-bc090453f1de","$type":"VM_metrics"},"OpaqueRef:fcafd189-1279-c5a0-8b36-73f022d0e848":{"uuid":"4ff92164-ed06-0c82-b010-b6500757eed5","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fcafd189-1279-c5a0-8b36-73f022d0e848","$type":"VM_metrics"},"OpaqueRef:fb1339b2-14e4-00d8-1726-704f267cf9a5":{"uuid":"7dc3bed1-113e-a62c-8ef5-5565c58a51f1","memory_actual":"0","VCPUs_number":"2","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2013-07-29T13:13:38.000Z","install_time":"2013-06-18T12:53:38.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fb1339b2-14e4-00d8-1726-704f267cf9a5","$type":"VM_metrics"},"OpaqueRef:f183f990-391a-24ce-75e3-ab933ba2d6f5":{"uuid":"9402568e-a9bd-30d3-3d28-622a1ae67c6f","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f183f990-391a-24ce-75e3-ab933ba2d6f5","$type":"VM_metrics"},"OpaqueRef:ed0a83fb-33f6-3d0b-25cc-a1d62acb2ec8":{"uuid":"9a293740-4e10-5995-f342-ee821c1767cc","memory_actual":"0","VCPUs_number":"4","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2014-01-05T13:29:08.000Z","install_time":"2013-11-08T11:29:11.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ed0a83fb-33f6-3d0b-25cc-a1d62acb2ec8","$type":"VM_metrics"},"OpaqueRef:dcc20f2c-17cc-d2fd-0ebf-36cb061c691e":{"uuid":"5b0848ba-12a0-2c6d-3bf4-aa7046127719","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dcc20f2c-17cc-d2fd-0ebf-36cb061c691e","$type":"VM_metrics"},"OpaqueRef:c08f4ca1-b513-e611-bc2c-aef4c50416d9":{"uuid":"3d50f929-dc74-1125-9445-f6efe61e7d58","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c08f4ca1-b513-e611-bc2c-aef4c50416d9","$type":"VM_metrics"},"OpaqueRef:c0417c9b-9e44-fa47-0b2b-b813f7d704ae":{"uuid":"8103f4fe-1bea-425d-d24b-8a29784ac9c3","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c0417c9b-9e44-fa47-0b2b-b813f7d704ae","$type":"VM_metrics"},"OpaqueRef:bf7e4ed4-c2da-2e74-a45d-39046160f72e":{"uuid":"21cecbf0-5ccb-cdfb-0b61-1bf78c2b320c","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bf7e4ed4-c2da-2e74-a45d-39046160f72e","$type":"VM_metrics"},"OpaqueRef:becf1e7c-455b-b262-633e-b3cf23c892ee":{"uuid":"ad8fdb19-bf96-422f-681b-c577da1baaf7","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:becf1e7c-455b-b262-633e-b3cf23c892ee","$type":"VM_metrics"},"OpaqueRef:bd0c87d4-d453-1aea-32bc-2596aca9dd4f":{"uuid":"49677dbe-0058-d6b7-3442-136392eba40c","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bd0c87d4-d453-1aea-32bc-2596aca9dd4f","$type":"VM_metrics"},"OpaqueRef:b96feb47-aea4-2850-1489-f93533cf0afb":{"uuid":"6107cd58-692c-e389-17f0-998dda079d4a","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b96feb47-aea4-2850-1489-f93533cf0afb","$type":"VM_metrics"},"OpaqueRef:b2d16bbd-c707-3972-583e-b097f7863a15":{"uuid":"ad8e7411-9482-4467-ec2b-875093c9f64c","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b2d16bbd-c707-3972-583e-b097f7863a15","$type":"VM_metrics"},"OpaqueRef:b1e661eb-b4ac-afab-41cd-7df6c48a3b10":{"uuid":"0d9cf602-2500-70f6-1f09-eb06882eeb65","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b1e661eb-b4ac-afab-41cd-7df6c48a3b10","$type":"VM_metrics"},"OpaqueRef:ae72234f-88b1-5277-1045-645381c4cb64":{"uuid":"2c980c44-2ce7-32c0-6ddb-fa7ebd661977","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ae72234f-88b1-5277-1045-645381c4cb64","$type":"VM_metrics"},"OpaqueRef:ac6e7483-f2e6-8b16-fa35-e825fd36b648":{"uuid":"2f50b29d-56a5-0488-c19a-e55c838e7da7","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ac6e7483-f2e6-8b16-fa35-e825fd36b648","$type":"VM_metrics"},"OpaqueRef:a8ef42ac-5a68-bf0f-2c84-c61257a4322b":{"uuid":"601ab92c-df8b-4c6d-6978-9a0ffd0e7380","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8ef42ac-5a68-bf0f-2c84-c61257a4322b","$type":"VM_metrics"},"OpaqueRef:a8101b62-3c8b-9025-790c-ae6e2fdf0dd3":{"uuid":"e3148964-95b5-0a35-3daa-fa0160efb387","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8101b62-3c8b-9025-790c-ae6e2fdf0dd3","$type":"VM_metrics"},"OpaqueRef:a3d89624-76d4-5c9d-c087-d525d14a265d":{"uuid":"544194b6-db02-9f23-3bc7-20cfcc5985db","memory_actual":"0","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2014-01-01T11:47:56.000Z","install_time":"2013-11-13T09:05:56.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a3d89624-76d4-5c9d-c087-d525d14a265d","$type":"VM_metrics"},"OpaqueRef:9c7658c6-dba2-f352-c19a-52c02ec4d120":{"uuid":"17d5ea26-5dc0-5768-ad53-db33703ec6f3","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9c7658c6-dba2-f352-c19a-52c02ec4d120","$type":"VM_metrics"},"OpaqueRef:9a1110ca-9f0c-cf67-7a10-491ab766fe67":{"uuid":"430779ad-7aa8-4b8c-fd5b-0eabaa13b4bc","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9a1110ca-9f0c-cf67-7a10-491ab766fe67","$type":"VM_metrics"},"OpaqueRef:9887a3dc-d68f-e15a-c46b-cc35836d322e":{"uuid":"0815a2ff-499a-79e3-f817-4e4c7c6b4b18","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9887a3dc-d68f-e15a-c46b-cc35836d322e","$type":"VM_metrics"},"OpaqueRef:97fa3418-3c1b-ab9c-e89c-01d444556752":{"uuid":"484c53a3-c08e-3ff7-0f90-c5004362d53d","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:97fa3418-3c1b-ab9c-e89c-01d444556752","$type":"VM_metrics"},"OpaqueRef:96cff684-92e0-4968-1f62-93a330bf0e31":{"uuid":"613e9821-9338-a1e8-c6cb-5b9e9986e4ec","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:96cff684-92e0-4968-1f62-93a330bf0e31","$type":"VM_metrics"},"OpaqueRef:93df4aea-923e-3442-082c-ff02778a98d1":{"uuid":"ae3429d7-6453-c7c3-988a-ac4463207585","memory_actual":"536838144","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2014-01-06T08:08:44.000Z","install_time":"2013-11-13T09:05:56.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93df4aea-923e-3442-082c-ff02778a98d1","$type":"VM_metrics"},"OpaqueRef:90fd0c59-8dab-9e49-4919-b3666446612b":{"uuid":"7a553db8-4494-af9c-24d7-f5b7a85f29a1","memory_actual":"536838144","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2014-01-06T11:54:25.000Z","install_time":"2013-11-13T09:05:56.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:90fd0c59-8dab-9e49-4919-b3666446612b","$type":"VM_metrics"},"OpaqueRef:90f79a0d-e67d-2911-3f77-850fbd23578e":{"uuid":"1e789c8a-8985-aed4-1e44-42978ec1a1a2","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:90f79a0d-e67d-2911-3f77-850fbd23578e","$type":"VM_metrics"},"OpaqueRef:8eca8952-b167-3dcb-ab0b-6155ee135871":{"uuid":"4db6d0a6-b44d-cb83-6cea-cb30bfe0ba38","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8eca8952-b167-3dcb-ab0b-6155ee135871","$type":"VM_metrics"},"OpaqueRef:8d02ffa7-b1eb-c691-c0ab-c9bb59392caa":{"uuid":"a8bcafe1-c758-0c46-5464-18c8bac63d40","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8d02ffa7-b1eb-c691-c0ab-c9bb59392caa","$type":"VM_metrics"},"OpaqueRef:8937851b-dbca-0b69-ba19-7dd0f2c6a0ee":{"uuid":"34cce66c-927c-a95a-92b6-9c6cb509dc04","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8937851b-dbca-0b69-ba19-7dd0f2c6a0ee","$type":"VM_metrics"},"OpaqueRef:8904966a-1ac7-0559-0aed-c93c4c1f973c":{"uuid":"1bb6c434-4e38-b0d9-7f00-73a0af59f4c3","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8904966a-1ac7-0559-0aed-c93c4c1f973c","$type":"VM_metrics"},"OpaqueRef:83fd8c0b-28cd-069d-415c-0d48ade21902":{"uuid":"3888b69b-b68b-05cc-bea2-4dad9684e316","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:83fd8c0b-28cd-069d-415c-0d48ade21902","$type":"VM_metrics"},"OpaqueRef:7d28809c-3623-4cd9-e3d4-20dfa80e1cc7":{"uuid":"b8cf2ace-6876-db9d-7e66-ab9fb8295214","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7d28809c-3623-4cd9-e3d4-20dfa80e1cc7","$type":"VM_metrics"},"OpaqueRef:7d2333d0-763d-cc6b-d269-cc794ef5a03a":{"uuid":"863e292b-3553-322c-9000-3ab252724a6c","memory_actual":"2147450880","VCPUs_number":"4","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2013-12-14T10:29:14.000Z","install_time":"2013-11-07T08:24:11.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7d2333d0-763d-cc6b-d269-cc794ef5a03a","$type":"VM_metrics"},"OpaqueRef:7acd7450-2c8f-441b-133b-cfc060c23bf6":{"uuid":"61c5fe04-0688-aa32-08bb-a8fe263aa78f","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7acd7450-2c8f-441b-133b-cfc060c23bf6","$type":"VM_metrics"},"OpaqueRef:79ed3cef-4b3e-fb08-9525-24c4e4bfdd8d":{"uuid":"ec81e436-c525-3295-e967-668931446105","memory_actual":"268435456","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2014-01-11T14:12:56.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:79ed3cef-4b3e-fb08-9525-24c4e4bfdd8d","$type":"VM_metrics"},"OpaqueRef:78fd1740-ad46-024d-7989-fae9b4532533":{"uuid":"36c0dd87-fb02-986d-591f-bc91e6df62fd","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:78fd1740-ad46-024d-7989-fae9b4532533","$type":"VM_metrics"},"OpaqueRef:75125f8c-b90e-731d-bc1c-84089306afed":{"uuid":"873d74a6-4d7d-18cc-71fa-c058bfaa20ea","memory_actual":"0","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2013-11-19T09:31:29.000Z","install_time":"2013-11-13T14:07:51.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:75125f8c-b90e-731d-bc1c-84089306afed","$type":"VM_metrics"},"OpaqueRef:69cbbe3d-adc8-e876-10e1-6a337975f9b2":{"uuid":"132bf4de-9db7-f7f2-1c9a-9ab6a3bb688f","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:69cbbe3d-adc8-e876-10e1-6a337975f9b2","$type":"VM_metrics"},"OpaqueRef:677f94a3-dc97-e061-5b1d-5d96a4d869c0":{"uuid":"1a8ef984-2214-7653-e4c3-a79c231b98ae","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:677f94a3-dc97-e061-5b1d-5d96a4d869c0","$type":"VM_metrics"},"OpaqueRef:5d79dc3c-724e-5d58-61a3-21d02bff4f9f":{"uuid":"64b27992-8091-2603-15f4-97cc8efc80e6","memory_actual":"0","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2013-11-13T14:11:02.000Z","install_time":"2013-11-13T14:07:51.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5d79dc3c-724e-5d58-61a3-21d02bff4f9f","$type":"VM_metrics"},"OpaqueRef:5c872249-dc30-ee3c-dbab-96d39c3661ba":{"uuid":"0227136f-74a5-0ab8-a418-4bf66cce42ed","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5c872249-dc30-ee3c-dbab-96d39c3661ba","$type":"VM_metrics"},"OpaqueRef:58e263a3-cd9f-b3b6-c023-b957d96cb6cf":{"uuid":"b69f2a06-4e10-27fa-b404-3428a19a3c4b","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:58e263a3-cd9f-b3b6-c023-b957d96cb6cf","$type":"VM_metrics"},"OpaqueRef:57ae558c-8f14-e910-7061-ca7edf8e4fe0":{"uuid":"a1eed893-9eb2-13e0-c5be-0f821ed41387","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:57ae558c-8f14-e910-7061-ca7edf8e4fe0","$type":"VM_metrics"},"OpaqueRef:578974ff-4461-f243-d895-12b0c65fb7c6":{"uuid":"3f7b1b15-9b78-6cb0-2597-78b64d6ada71","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:578974ff-4461-f243-d895-12b0c65fb7c6","$type":"VM_metrics"},"OpaqueRef:55803538-7c63-a959-0f54-a1d0a4a9ee77":{"uuid":"20399842-f4c2-214e-b55e-cf69ffbc1e51","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:55803538-7c63-a959-0f54-a1d0a4a9ee77","$type":"VM_metrics"},"OpaqueRef:555ac046-2e06-38e7-5458-402a6bb05b36":{"uuid":"1f050410-a47a-ca02-41ca-e0f1fe6ce096","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:555ac046-2e06-38e7-5458-402a6bb05b36","$type":"VM_metrics"},"OpaqueRef:54e060ee-40b2-6222-452d-38220f0b176c":{"uuid":"10cd74c2-1bbd-55b2-a1e3-7f35fae80de5","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:54e060ee-40b2-6222-452d-38220f0b176c","$type":"VM_metrics"},"OpaqueRef:54cfda4d-4fb7-ec2a-8669-63403f38c88b":{"uuid":"6061559f-cba6-6273-530e-743bf785ad46","memory_actual":"0","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2013-07-04T11:07:06.000Z","install_time":"2013-07-04T10:09:16.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:54cfda4d-4fb7-ec2a-8669-63403f38c88b","$type":"VM_metrics"},"OpaqueRef:5415735c-8dc3-dd4e-9bf2-a420929a5142":{"uuid":"3c34b335-0b72-5631-5bcd-5ac53c85b7cf","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5415735c-8dc3-dd4e-9bf2-a420929a5142","$type":"VM_metrics"},"OpaqueRef:4eb85b24-adad-5e54-5744-169061b33984":{"uuid":"7c723402-bd8a-07fa-8e87-c9b5e7e8eed5","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4eb85b24-adad-5e54-5744-169061b33984","$type":"VM_metrics"},"OpaqueRef:4bb32bd1-2508-8937-4d75-7c1046e58e7e":{"uuid":"17233bd4-9ef5-2197-cfd4-97dfaf2a778c","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4bb32bd1-2508-8937-4d75-7c1046e58e7e","$type":"VM_metrics"},"OpaqueRef:4a40dfd3-3bad-b1f8-7445-7694a6eb576b":{"uuid":"c03cd0c8-ee4c-94ec-39ce-90de0c55baa1","memory_actual":"0","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2013-07-23T07:26:59.000Z","install_time":"2013-06-25T10:00:09.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a40dfd3-3bad-b1f8-7445-7694a6eb576b","$type":"VM_metrics"},"OpaqueRef:49904297-9df4-2e36-7a0c-e663f8dea8d6":{"uuid":"7b9337a0-c359-f784-1a8c-2368bd20d75b","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:49904297-9df4-2e36-7a0c-e663f8dea8d6","$type":"VM_metrics"},"OpaqueRef:47592c33-6474-9afb-d8ef-6eaa002f0efe":{"uuid":"f3da8e04-9fa1-f4b7-001f-167dbbd3a187","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:47592c33-6474-9afb-d8ef-6eaa002f0efe","$type":"VM_metrics"},"OpaqueRef:46e47b62-7755-d796-360b-6ddb7154cff9":{"uuid":"f9f7ad09-217a-c8d8-66ec-5370fa9373c9","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:46e47b62-7755-d796-360b-6ddb7154cff9","$type":"VM_metrics"},"OpaqueRef:4693e2ee-5339-5186-b57e-576a85ecc628":{"uuid":"1fc2ee49-9e86-d868-7a17-73473e81d218","memory_actual":"771489792","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4693e2ee-5339-5186-b57e-576a85ecc628","$type":"VM_metrics"},"OpaqueRef:458ffecc-0375-173a-470e-e74dfffd0a74":{"uuid":"6662e11c-92f5-e71b-425b-ff1701d33fb5","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:458ffecc-0375-173a-470e-e74dfffd0a74","$type":"VM_metrics"},"OpaqueRef:3f2f9b2f-962e-1366-048e-062bff51dd71":{"uuid":"16d86fed-ba5b-5de3-0c07-96bef933392d","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3f2f9b2f-962e-1366-048e-062bff51dd71","$type":"VM_metrics"},"OpaqueRef:3c5cc169-23f0-d3e2-4683-d55a44ec8d4d":{"uuid":"a2f96cb9-8b9b-662f-6341-7f92a2c919eb","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3c5cc169-23f0-d3e2-4683-d55a44ec8d4d","$type":"VM_metrics"},"OpaqueRef:3a80587d-4f14-6e52-88be-9820b8350653":{"uuid":"271cea45-bfc3-7877-7046-89b226e15ce9","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3a80587d-4f14-6e52-88be-9820b8350653","$type":"VM_metrics"},"OpaqueRef:33d68356-53ae-6709-1466-66cd697ae165":{"uuid":"acfa6971-b76a-b550-f78c-fca1a1ec1a46","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:33d68356-53ae-6709-1466-66cd697ae165","$type":"VM_metrics"},"OpaqueRef:330446d3-ed68-0e3f-e333-ea57e15bf907":{"uuid":"65715177-d693-ef42-07e9-c9e143294ddb","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:330446d3-ed68-0e3f-e333-ea57e15bf907","$type":"VM_metrics"},"OpaqueRef:32a55743-6715-40e2-92e1-a89b0d778ae5":{"uuid":"eeb21e61-d508-e079-cc15-35e5b8c26ee3","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:32a55743-6715-40e2-92e1-a89b0d778ae5","$type":"VM_metrics"},"OpaqueRef:32a14d56-e91e-ff2d-e64d-f76b2fdc6444":{"uuid":"28f5ff88-dc45-5665-993a-449dd67b4e52","memory_actual":"536838144","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2014-01-11T14:12:35.000Z","install_time":"2013-11-13T09:05:56.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:32a14d56-e91e-ff2d-e64d-f76b2fdc6444","$type":"VM_metrics"},"OpaqueRef:2f683bf1-a4aa-f370-6007-51b891806dbd":{"uuid":"208967e1-aef6-21e3-4e45-c89a0897e892","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2f683bf1-a4aa-f370-6007-51b891806dbd","$type":"VM_metrics"},"OpaqueRef:2e341eed-60aa-d1df-0656-b6ca7ad439f9":{"uuid":"32104f21-e32c-7349-5b19-8dbcb45e49c3","memory_actual":"774373376","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2e341eed-60aa-d1df-0656-b6ca7ad439f9","$type":"VM_metrics"},"OpaqueRef:2d047d58-380c-83aa-3d3a-5bf1bf63aa9d":{"uuid":"b2ebeb63-03f1-d0e9-afcc-792c09840bb5","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2d047d58-380c-83aa-3d3a-5bf1bf63aa9d","$type":"VM_metrics"},"OpaqueRef:28a7521d-183c-4510-3d19-44dd494683da":{"uuid":"3779ebd8-db26-df4b-5cb5-17dafc89938b","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:28a7521d-183c-4510-3d19-44dd494683da","$type":"VM_metrics"},"OpaqueRef:26aaab4d-e490-0d27-812e-e5d79fa11c25":{"uuid":"b226bff1-f2d9-6323-5041-4533d27b7ce5","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:26aaab4d-e490-0d27-812e-e5d79fa11c25","$type":"VM_metrics"},"OpaqueRef:253ee5d4-d194-8bb9-d623-403964a3443c":{"uuid":"219b5941-7732-0c65-b53c-19b360763408","memory_actual":"536838144","VCPUs_number":"1","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"2014-01-06T08:08:45.000Z","install_time":"2013-11-13T09:05:56.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:253ee5d4-d194-8bb9-d623-403964a3443c","$type":"VM_metrics"},"OpaqueRef:20fb5479-1442-589a-3c87-641a52e1b1d1":{"uuid":"842167ac-8873-377e-5d26-a8edca9ac296","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:20fb5479-1442-589a-3c87-641a52e1b1d1","$type":"VM_metrics"},"OpaqueRef:1fdd5159-371d-01b7-e0ec-c38eea4cca26":{"uuid":"da5fe49e-2f72-d965-dd7d-75725083d18b","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1fdd5159-371d-01b7-e0ec-c38eea4cca26","$type":"VM_metrics"},"OpaqueRef:1aee5fbb-132d-df9f-daa8-38254df5b98a":{"uuid":"953a9b17-ab58-b61a-bc78-c3c922e8b5e5","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1aee5fbb-132d-df9f-daa8-38254df5b98a","$type":"VM_metrics"},"OpaqueRef:16d361e5-ed4b-e371-59d3-54deb132238b":{"uuid":"db403e1d-bf21-e3aa-4608-384373c65cec","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:16d361e5-ed4b-e371-59d3-54deb132238b","$type":"VM_metrics"},"OpaqueRef:08727885-70fc-ca44-7ed5-9700436e396f":{"uuid":"286f977d-7b41-e352-47ba-f290c1ab2aec","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:08727885-70fc-ca44-7ed5-9700436e396f","$type":"VM_metrics"},"OpaqueRef:06933481-218a-b618-b4b3-6ee603f7e9fd":{"uuid":"c826a6ce-fc15-dd00-04e7-2106fe994b72","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:06933481-218a-b618-b4b3-6ee603f7e9fd","$type":"VM_metrics"},"OpaqueRef:060eb48d-36e0-6107-8837-d0ccb03140fd":{"uuid":"a4070a26-6983-fdc1-21e4-ebff46afb2c9","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:060eb48d-36e0-6107-8837-d0ccb03140fd","$type":"VM_metrics"},"OpaqueRef:030fa1f4-2160-09fe-5240-155411d8569b":{"uuid":"e379bec7-d67a-3193-72e2-120a169f1eec","memory_actual":"0","VCPUs_number":"0","VCPUs_utilisation":{},"VCPUs_CPU":{},"VCPUs_params":{},"VCPUs_flags":{},"state":[],"start_time":"1969-12-31T23:00:00.000Z","install_time":"1969-12-31T23:00:00.000Z","last_updated":"1969-12-31T23:00:00.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:030fa1f4-2160-09fe-5240-155411d8569b","$type":"VM_metrics"},"OpaqueRef:f0dd0d3c-b110-9cf5-9fd7-ecb39a5d2bd4":{"uuid":"8070d1a7-6248-7bb6-37a9-363d3b95ff53","os_version":{"name":"Microsoft Windows XP Professional|C:\\WINDOWS|\\Device\\Harddisk0\\Partition1","distro":"windows","major":"5","minor":"1","spmajor":"3","spminor":"0"},"PV_drivers_version":{"xenvbd":"1.0boot","xennet":"1.0","major":"6","minor":"2","micro":"0","build":"1"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.118"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1","balloon-active":"0","feature-suspend":"1","feature-shutdown":"1","feature-ts":"1"},"last_updated":"2014-01-11T14:13:12.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f0dd0d3c-b110-9cf5-9fd7-ecb39a5d2bd4","$type":"VM_guest_metrics"},"OpaqueRef:9f24c6fa-cc6a-0223-568e-143584519650":{"uuid":"b950a6bc-076f-b73d-7b42-fd4aaf07fa32","os_version":{"name":"Microsoft Windows XP Professional|C:\\WINDOWS|\\Device\\Harddisk0\\Partition1","distro":"windows","major":"5","minor":"1","spmajor":"3","spminor":"0"},"PV_drivers_version":{"xenvbd":"1.0boot","xennet":"1.0","major":"6","minor":"2","micro":"0","build":"1"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.118"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1","balloon-active":"0","feature-suspend":"1","error":"CreateProcessAsUser : 6 failed.","feature-shutdown":"1","feature-ts":"1"},"last_updated":"2013-07-29T09:55:24.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9f24c6fa-cc6a-0223-568e-143584519650","$type":"VM_guest_metrics"},"OpaqueRef:993aa015-8b10-deec-9f7d-41447b2721a3":{"uuid":"c058e16f-02a8-aa54-e3fc-736346f3353d","os_version":{"name":"Debian 7.2","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"2"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.117","0/ipv6/0":"fe80::800f:c5ff:feb7:1a5f"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2014-01-06T08:11:01.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:993aa015-8b10-deec-9f7d-41447b2721a3","$type":"VM_guest_metrics"},"OpaqueRef:950ba97a-ad8c-7a91-df75-8326676c566a":{"uuid":"4bc0d5d0-eb3f-f2af-8852-b3ba131ed465","os_version":{"name":"Debian 7.1","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"1"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.112","0/ipv6/0":"fe80::8002:a2ff:febd:14ef"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2014-01-11T14:15:13.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:950ba97a-ad8c-7a91-df75-8326676c566a","$type":"VM_guest_metrics"},"OpaqueRef:887509ff-390f-2ac1-2769-6568884dc2d2":{"uuid":"cca58bfc-6605-9dbb-c402-bf07de946ac4","os_version":{"name":"Debian 7.2","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"2"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.5","0/ipv6/0":"fe80::8055:b9ff:fed7:b3f8"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2013-11-19T09:33:46.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:887509ff-390f-2ac1-2769-6568884dc2d2","$type":"VM_guest_metrics"},"OpaqueRef:8382acb3-9ffb-47b9-ca98-8d827fd70d75":{"uuid":"c618bc9d-b815-1131-c9a1-d2cf91d6861d","os_version":{"name":"Debian 7.2","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"2"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.113","0/ipv6/0":"fe80::a840:53ff:fe21:d1b8"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2014-01-01T11:50:12.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8382acb3-9ffb-47b9-ca98-8d827fd70d75","$type":"VM_guest_metrics"},"OpaqueRef:7b2b8bca-84ab-8beb-835a-536e52694c20":{"uuid":"183cf65d-817d-1f48-295a-e7678c956588","os_version":{"name":"Debian 6.0.7","uname":"2.6.32-5-amd64","distro":"debian","major":"6","minor":"0"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2013-07-29T13:13:47.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7b2b8bca-84ab-8beb-835a-536e52694c20","$type":"VM_guest_metrics"},"OpaqueRef:67f79524-631e-07f4-a56d-be64819c0e7a":{"uuid":"430032e6-74a8-eeb2-c53e-5089daa85db0","os_version":{"name":"Debian 7.2","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"2"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.116","0/ipv6/0":"fe80::cc20:2bff:fe38:7ffd"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2014-01-11T14:14:50.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:67f79524-631e-07f4-a56d-be64819c0e7a","$type":"VM_guest_metrics"},"OpaqueRef:3ddfb17f-c142-49d7-38fc-3a7e7f8239c9":{"uuid":"51c41420-c024-dc42-00b0-706301f1ba88","os_version":{"name":"Debian 7.2","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"2"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.114","0/ipv6/0":"fe80::58a2:9fff:febc:37cc"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2014-01-06T08:11:03.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3ddfb17f-c142-49d7-38fc-3a7e7f8239c9","$type":"VM_guest_metrics"},"OpaqueRef:2cf98c98-d625-af1d-421c-7a9dd1a82c29":{"uuid":"58d35c01-4f7c-dbbf-00ec-f2070cae10e8","os_version":{"name":"Debian 7.2","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"2"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.113","0/ipv6/0":"fe80::a840:53ff:fe21:d1b8"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2014-01-06T11:56:42.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2cf98c98-d625-af1d-421c-7a9dd1a82c29","$type":"VM_guest_metrics"},"OpaqueRef:1e712b5c-2774-d28b-a6b4-dce9f91c5578":{"uuid":"ab8e47e1-143d-fb70-fdbf-dc3c54ea0af0","os_version":{"name":"Debian 7.2","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"2"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2013-11-13T09:17:37.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1e712b5c-2774-d28b-a6b4-dce9f91c5578","$type":"VM_guest_metrics"},"OpaqueRef:100abe2c-f466-d7ce-15eb-4f9adfb7e14b":{"uuid":"9d070550-db3e-3d1d-5814-7391f44792d9","os_version":{"name":"Debian 7.2","uname":"3.2.0-4-amd64","distro":"debian","major":"7","minor":"2"},"PV_drivers_version":{"major":"6","minor":"2","micro":"0","build":"70442"},"PV_drivers_up_to_date":true,"memory":{},"disks":{},"networks":{"0/ip":"192.168.1.5","0/ipv6/0":"fe80::8055:b9ff:fed7:b3f8"},"other":{"platform-feature-multiprocessor-suspend":"1","feature-balloon":"1"},"last_updated":"2013-11-13T14:13:20.000Z","other_config":{},"live":true,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:100abe2c-f466-d7ce-15eb-4f9adfb7e14b","$type":"VM_guest_metrics"},"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692":{"uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","name_label":"lab2","name_description":"","memory_overhead":"193593344","allowed_operations":["vm_migrate","evacuate","provision","vm_resume","vm_start"],"current_operations":{},"API_version_major":"2","API_version_minor":"0","API_version_vendor":"XenSource","API_version_vendor_implementation":{},"enabled":true,"software_version":{"product_version":"6.2.0","product_version_text":"6.2","product_version_text_short":"6.2","platform_name":"XCP","platform_version":"1.8.0","product_brand":"XenServer","build_number":"70446c","hostname":"othone-2","date":"2013-06-14","dbv":"2013.0621","xapi":"1.3","xen":"4.1.5","linux":"2.6.32.43-0.4.1.xs1.8.0.835.170778xen","xencenter_min":"2.0","xencenter_max":"2.0","network_backend":"openvswitch","xcp:main":"Base Pack, version 1.8.0, build 70446c","xs:xenserver-transfer-vm":"XenServer Transfer VM, version 6.2.0, build 70314c","xs:main":"XenServer Pack, version 6.2.0, build 70446c"},"other_config":{"last_blob_sync_time":"1389632651.74","agent_start_time":"1387020149.","boot_time":"1387020112.","MAINTENANCE_MODE_EVACUATED_VMS_SUSPENDED":"","MAINTENANCE_MODE_EVACUATED_VMS_HALTED":"","MAINTENANCE_MODE_EVACUATED_VMS_MIGRATED":"","iscsi_iqn":"iqn.2013-06.com.example:c0559497"},"capabilities":["xen-3.0-x86_64","xen-3.0-x86_32p","hvm-3.0-x86_32","hvm-3.0-x86_32p","hvm-3.0-x86_64",""],"cpu_configuration":{},"sched_policy":"credit","supported_bootloaders":["pygrub","eliloader"],"resident_VMs":["OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b","OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386","OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf","OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1","OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64","OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675"],"logging":{},"PIFs":["OpaqueRef:971d6bc5-60f4-a331-bdee-444ee7cbf678","OpaqueRef:8d2189b1-ab1d-446b-a019-e94fa8eab58f"],"suspend_image_sr":"OpaqueRef:804177dc-072c-d4ca-0f89-b97befb25f21","crash_dump_sr":"OpaqueRef:804177dc-072c-d4ca-0f89-b97befb25f21","crashdumps":[],"patches":[],"PBDs":["OpaqueRef:992460b7-13f0-a91e-450d-a625962f67cd","OpaqueRef:66b06c7a-b59a-060e-e5f0-1e645b4b065b","OpaqueRef:537c4f6f-7620-be3f-9999-697443991b2c","OpaqueRef:3ecc1b3e-78cb-e39e-1618-b4fd5e268df0","OpaqueRef:200674ae-d9ab-2caa-a283-4fa3d14592fd","OpaqueRef:12e1d8fa-af07-ad26-91f0-9e8f00068a3e"],"host_CPUs":["OpaqueRef:f6835edd-dba8-a9ef-78db-74d6b9f948c5","OpaqueRef:b768abe1-8678-0401-6f11-d21944ae567b","OpaqueRef:7fdcd05f-2897-aba2-b1ee-6dcd5d8f85d9","OpaqueRef:2025a589-ab55-1b04-5077-8e1cfebebc71"],"cpu_info":{"cpu_count":"4","socket_count":"1","vendor":"GenuineIntel","speed":"3192.840","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"77bae3ff-bfebfbff-00000001-28100800","features_after_reboot":"77bae3ff-bfebfbff-00000001-28100800","physical_features":"77bae3ff-bfebfbff-00000001-28100800","maskable":"full"},"hostname":"lab2","address":"192.168.1.2","metrics":"OpaqueRef:5d5f8503-e304-1d6b-e6e2-17904a613283","license_params":{"sku_type":"free","version":"6.2.0","serialnumber":"","sockets":"1","productcode":"","expiry":"20291231T23:00:00Z","grace":"no","name":"","company":"","address1":"","address2":"","city":"","state":"","postalcode":"","country":"","sku_marketing_name":"Citrix XenServer","restrict_vswitch_controller":"false","restrict_lab":"false","restrict_stage":"false","restrict_storagelink":"false","restrict_storagelink_site_recovery":"false","restrict_web_selfservice":"true","restrict_web_selfservice_manager":"true","restrict_hotfix_apply":"true","restrict_vlan":"false","restrict_qos":"false","restrict_pool_attached_storage":"false","restrict_netapp":"false","restrict_equalogic":"false","restrict_pooling":"false","enable_xha":"true","restrict_marathon":"false","restrict_email_alerting":"false","restrict_historical_performance":"false","restrict_wlb":"true","restrict_rbac":"false","restrict_dmc":"false","restrict_checkpoint":"false","restrict_cpu_masking":"false","restrict_connection":"false","platform_filter":"false","regular_nag_dialog":"false","restrict_vmpr":"false","restrict_intellicache":"false","restrict_gpu":"false","restrict_dr":"false","restrict_vif_locking":"false","restrict_storage_xen_motion":"false"},"ha_statefiles":[],"ha_network_peers":[],"blobs":{},"tags":[],"external_auth_type":"","external_auth_service_name":"","external_auth_configuration":{},"edition":"free","license_server":{"address":"localhost","port":"27000"},"bios_strings":{"bios-vendor":"American Megatrends Inc.","bios-version":"P1.30","system-manufacturer":"To Be Filled By O.E.M.","system-product-name":"To Be Filled By O.E.M.","system-version":"To Be Filled By O.E.M.","system-serial-number":"To Be Filled By O.E.M.","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d","oem-3":"To Be Filled By O.E.M.","hp-rombios":""},"power_on_mode":"","power_on_config":{},"local_cache_sr":"OpaqueRef:NULL","chipset_info":{"iommu":"true"},"PCIs":["OpaqueRef:8add8253-2f16-26be-ab8f-9eba5aaee791"],"PGPUs":["OpaqueRef:304c2450-a24a-7797-d725-5497a0c99e80"],"guest_VCPUs_params":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","$type":"host"},"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145":{"uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","name_label":"lab1","name_description":"Default install of XenServer","memory_overhead":"175648768","allowed_operations":["vm_migrate","evacuate","provision","vm_resume","vm_start"],"current_operations":{},"API_version_major":"2","API_version_minor":"0","API_version_vendor":"XenSource","API_version_vendor_implementation":{},"enabled":true,"software_version":{"product_version":"6.2.0","product_version_text":"6.2","product_version_text_short":"6.2","platform_name":"XCP","platform_version":"1.8.0","product_brand":"XenServer","build_number":"70446c","hostname":"othone-2","date":"2013-06-14","dbv":"2013.0621","xapi":"1.3","xen":"4.1.5","linux":"2.6.32.43-0.4.1.xs1.8.0.835.170778xen","xencenter_min":"2.0","xencenter_max":"2.0","network_backend":"openvswitch","xs:main":"XenServer Pack, version 6.2.0, build 70446c","xcp:main":"Base Pack, version 1.8.0, build 70446c","xs:xenserver-transfer-vm":"XenServer Transfer VM, version 6.2.0, build 70314c"},"other_config":{"agent_start_time":"1389452650.","boot_time":"1389452558.","last_blob_sync_time":"1384342278.39","iscsi_iqn":"iqn.2013-07.com.example:83ba9261"},"capabilities":["xen-3.0-x86_64","xen-3.0-x86_32p","hvm-3.0-x86_32","hvm-3.0-x86_32p","hvm-3.0-x86_64",""],"cpu_configuration":{},"sched_policy":"credit","supported_bootloaders":["pygrub","eliloader"],"resident_VMs":["OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620","OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d","OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed"],"logging":{},"PIFs":["OpaqueRef:aef57ed4-e4d9-7f72-0376-b781a19bb9d2","OpaqueRef:06f53e3d-d8de-d4ed-6359-9e20b4fb0d21"],"suspend_image_sr":"OpaqueRef:7c88a8c6-fc48-8836-28fa-212f67c42d2f","crash_dump_sr":"OpaqueRef:7c88a8c6-fc48-8836-28fa-212f67c42d2f","crashdumps":[],"patches":[],"PBDs":["OpaqueRef:ff32de74-138c-9d80-ab58-c631d2aa0e71","OpaqueRef:f0f98779-5cf8-cabc-edc3-631a2d63d89c","OpaqueRef:b70f8e06-07a8-a5e7-2856-f221c822e9b2","OpaqueRef:b641552a-8c92-71b3-c0a2-e4dd3d04c215","OpaqueRef:93320534-824f-850a-64a2-bcbfdc2e0927","OpaqueRef:0c1d3862-5a38-e4cc-4a46-d8358a622461"],"host_CPUs":["OpaqueRef:4cdfe45f-6c0d-a987-80b2-2846969a4231","OpaqueRef:2a0cfecd-7721-a8bf-bddd-f32c344956be","OpaqueRef:079e2cec-46ec-fb8d-4fa1-76dbcbdea709","OpaqueRef:1116d4dc-6821-e96c-e7f4-1e6a4c77fac0"],"cpu_info":{"cpu_count":"4","socket_count":"1","vendor":"GenuineIntel","speed":"3192.858","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"77bae3ff-bfebfbff-00000001-28100800","features_after_reboot":"77bae3ff-bfebfbff-00000001-28100800","physical_features":"77bae3ff-bfebfbff-00000001-28100800","maskable":"full"},"hostname":"lab1","address":"192.168.1.1","metrics":"OpaqueRef:dca069eb-a4d5-4b81-5046-147331a36b4f","license_params":{"sku_type":"free","version":"6.2.0","serialnumber":"","sockets":"1","productcode":"","expiry":"20291231T23:00:00Z","grace":"no","name":"","company":"","address1":"","address2":"","city":"","state":"","postalcode":"","country":"","sku_marketing_name":"Citrix XenServer","restrict_vswitch_controller":"false","restrict_lab":"false","restrict_stage":"false","restrict_storagelink":"false","restrict_storagelink_site_recovery":"false","restrict_web_selfservice":"true","restrict_web_selfservice_manager":"true","restrict_hotfix_apply":"true","restrict_vlan":"false","restrict_qos":"false","restrict_pool_attached_storage":"false","restrict_netapp":"false","restrict_equalogic":"false","restrict_pooling":"false","enable_xha":"true","restrict_marathon":"false","restrict_email_alerting":"false","restrict_historical_performance":"false","restrict_wlb":"true","restrict_rbac":"false","restrict_dmc":"false","restrict_checkpoint":"false","restrict_cpu_masking":"false","restrict_connection":"false","platform_filter":"false","regular_nag_dialog":"false","restrict_vmpr":"false","restrict_intellicache":"false","restrict_gpu":"false","restrict_dr":"false","restrict_vif_locking":"false","restrict_storage_xen_motion":"false"},"ha_statefiles":[],"ha_network_peers":[],"blobs":{},"tags":[],"external_auth_type":"","external_auth_service_name":"","external_auth_configuration":{},"edition":"free","license_server":{"address":"localhost","port":"27000"},"bios_strings":{"bios-vendor":"Award Software International, Inc.","bios-version":"F8","system-manufacturer":"Gigabyte Technology Co., Ltd.","system-product-name":"H61N-USB3","system-version":"","system-serial-number":"","oem-1":"Xen","oem-2":"MS_VM_CERT/SHA1/bdbeb6e0a816d43fa6d3fe8aaef04c2bad9d3e3d","hp-rombios":""},"power_on_mode":"","power_on_config":{},"local_cache_sr":"OpaqueRef:NULL","chipset_info":{"iommu":"false"},"PCIs":["OpaqueRef:426e228c-67f9-2fd2-e716-2821c2da7053"],"PGPUs":["OpaqueRef:d004d3ba-4421-48be-ffb8-59284f08024e"],"guest_VCPUs_params":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","$type":"host"},"OpaqueRef:dca069eb-a4d5-4b81-5046-147331a36b4f":{"uuid":"31065343-41e1-090e-9aaf-b038d9db32f0","memory_total":"8502759424","memory_free":"5937971200","live":true,"last_updated":"2013-10-01T11:48:12.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dca069eb-a4d5-4b81-5046-147331a36b4f","$type":"host_metrics"},"OpaqueRef:5d5f8503-e304-1d6b-e6e2-17904a613283":{"uuid":"0935676e-4b30-ac0c-f2e8-c7bb3eb6b09a","memory_total":"8263430144","memory_free":"3235356672","live":true,"last_updated":"2013-06-18T06:38:36.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5d5f8503-e304-1d6b-e6e2-17904a613283","$type":"host_metrics"},"OpaqueRef:f6835edd-dba8-a9ef-78db-74d6b9f948c5":{"uuid":"4396ab73-1d4b-5345-96d0-3fce05445357","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","number":"2","vendor":"GenuineIntel","speed":"3192","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"","utilisation":0,"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f6835edd-dba8-a9ef-78db-74d6b9f948c5","$type":"host_cpu"},"OpaqueRef:b768abe1-8678-0401-6f11-d21944ae567b":{"uuid":"81a26c1f-9c94-bb6c-073e-c95f1280a63f","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","number":"1","vendor":"GenuineIntel","speed":"3192","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"","utilisation":0,"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b768abe1-8678-0401-6f11-d21944ae567b","$type":"host_cpu"},"OpaqueRef:7fdcd05f-2897-aba2-b1ee-6dcd5d8f85d9":{"uuid":"23bd3a4e-91b4-0fc9-aef6-9e6e1fe12822","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","number":"0","vendor":"GenuineIntel","speed":"3192","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"","utilisation":0,"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7fdcd05f-2897-aba2-b1ee-6dcd5d8f85d9","$type":"host_cpu"},"OpaqueRef:4cdfe45f-6c0d-a987-80b2-2846969a4231":{"uuid":"1826dd59-d4f6-e76b-3574-6c508d21ff8f","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","number":"3","vendor":"GenuineIntel","speed":"3192","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"","utilisation":0,"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4cdfe45f-6c0d-a987-80b2-2846969a4231","$type":"host_cpu"},"OpaqueRef:2a0cfecd-7721-a8bf-bddd-f32c344956be":{"uuid":"b8a02dbd-837a-41f2-c3f8-81cd297c15b4","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","number":"2","vendor":"GenuineIntel","speed":"3192","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"","utilisation":0,"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2a0cfecd-7721-a8bf-bddd-f32c344956be","$type":"host_cpu"},"OpaqueRef:2025a589-ab55-1b04-5077-8e1cfebebc71":{"uuid":"02b582a5-0774-9a98-4127-883bba20e909","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","number":"3","vendor":"GenuineIntel","speed":"3192","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"","utilisation":0,"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2025a589-ab55-1b04-5077-8e1cfebebc71","$type":"host_cpu"},"OpaqueRef:1116d4dc-6821-e96c-e7f4-1e6a4c77fac0":{"uuid":"42fece2c-0ed2-bf0e-f7ac-6a143ad56679","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","number":"0","vendor":"GenuineIntel","speed":"3192","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"","utilisation":0,"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1116d4dc-6821-e96c-e7f4-1e6a4c77fac0","$type":"host_cpu"},"OpaqueRef:079e2cec-46ec-fb8d-4fa1-76dbcbdea709":{"uuid":"7cb07ec8-38e1-b56a-6e97-ce15647a1ff8","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","number":"1","vendor":"GenuineIntel","speed":"3192","modelname":"Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz","family":"6","model":"58","stepping":"9","flags":"fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid","features":"","utilisation":0,"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:079e2cec-46ec-fb8d-4fa1-76dbcbdea709","$type":"host_cpu"},"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0":{"uuid":"7120433d-630c-00f3-aa72-552c237172ef","name_label":"Pool-wide network associated with eth0","name_description":"","allowed_operations":[],"current_operations":{},"VIFs":["OpaqueRef:fc86d17e-d9d1-5534-69d6-d15edbe36d22","OpaqueRef:ed2d89ca-1f4e-09ff-f80e-991d6b01de45","OpaqueRef:c6651d03-cefe-accf-920b-636e32fee23c","OpaqueRef:c5977d9b-cb50-a615-8488-1dd105d69802","OpaqueRef:c391575b-168f-e52b-59f7-9f852a2c6854","OpaqueRef:bf4da755-480b-e3fd-2bfe-f53e7204c8ae","OpaqueRef:ba41d1a6-724e-aae8-3447-20f74014eb75","OpaqueRef:b8df4453-542e-6c14-0eb1-174d48373bca","OpaqueRef:b5980de3-1a74-9f57-1e98-2a74184211dc","OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf","OpaqueRef:aa874254-b67c-e9e3-6a08-1c770c2dd8ac","OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba","OpaqueRef:59b884b0-521f-7b3e-6a91-319ded893e68","OpaqueRef:20349ad5-0a0d-4b80-dcc0-0037fa647182"],"PIFs":["OpaqueRef:aef57ed4-e4d9-7f72-0376-b781a19bb9d2","OpaqueRef:971d6bc5-60f4-a331-bdee-444ee7cbf678"],"MTU":"1500","other_config":{},"bridge":"xenbr0","blobs":{},"tags":[],"default_locking_mode":"unlocked","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","$type":"network"},"OpaqueRef:4e265829-7517-3520-6a97-56b6ac0730c9":{"uuid":"b6645fec-bddb-5170-0efc-50bb41f7da2b","name_label":"Pool-wide network associated with eth1","name_description":"","allowed_operations":[],"current_operations":{},"VIFs":[],"PIFs":["OpaqueRef:8d2189b1-ab1d-446b-a019-e94fa8eab58f","OpaqueRef:06f53e3d-d8de-d4ed-6359-9e20b4fb0d21"],"MTU":"9000","other_config":{"automatic":"false"},"bridge":"xenbr1","blobs":{},"tags":[],"default_locking_mode":"unlocked","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4e265829-7517-3520-6a97-56b6ac0730c9","$type":"network"},"OpaqueRef:16013d48-b9eb-84c0-0e62-d809211b0632":{"uuid":"6c0aacff-90d0-71c5-e485-bbb0bd5a594b","name_label":"Host internal management network","name_description":"Network on which guests will be assigned a private link-local IP address which can be used to talk XenAPI","allowed_operations":[],"current_operations":{},"VIFs":[],"PIFs":[],"MTU":"1500","other_config":{"is_guest_installer_network":"true","is_host_internal_management_network":"true","ip_begin":"169.254.0.1","ip_end":"169.254.255.254","netmask":"255.255.0.0"},"bridge":"xenapi","blobs":{},"tags":[],"default_locking_mode":"unlocked","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:16013d48-b9eb-84c0-0e62-d809211b0632","$type":"network"},"OpaqueRef:fc86d17e-d9d1-5534-69d6-d15edbe36d22":{"uuid":"ea5cf28f-419e-8f45-ddd8-18635faba082","allowed_operations":["attach"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab","MAC":"aa:40:53:21:d1:b8","MTU":"1500","other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:2f750bba-961e-5b82-d086-ee0d28568881","MAC_autogenerated":false,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fc86d17e-d9d1-5534-69d6-d15edbe36d22","$type":"VIF"},"OpaqueRef:ed2d89ca-1f4e-09ff-f80e-991d6b01de45":{"uuid":"a056bc4b-54ae-84c7-6468-869861f36843","allowed_operations":["attach"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:d4fa8fba-ec86-5928-a1bb-dd78b6fb5944","MAC":"82:55:b9:d7:b3:f8","MTU":"1500","other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:13bc7768-a416-8c11-a940-69e27145c180","MAC_autogenerated":false,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ed2d89ca-1f4e-09ff-f80e-991d6b01de45","$type":"VIF"},"OpaqueRef:c6651d03-cefe-accf-920b-636e32fee23c":{"uuid":"8ba69ae5-24f2-0aa4-8f30-1dc00f14fb42","allowed_operations":["attach"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:a247a02f-8909-5044-64a0-82460b25e740","MAC":"5a:f6:0b:0f:28:cb","MTU":"1500","other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:181e2f71-74c4-5a7c-6070-da6b733a41de","MAC_autogenerated":true,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c6651d03-cefe-accf-920b-636e32fee23c","$type":"VIF"},"OpaqueRef:c5977d9b-cb50-a615-8488-1dd105d69802":{"uuid":"6cdeda38-8aee-15a1-a85b-9c6161af1d18","allowed_operations":["attach","unplug"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b","MAC":"82:02:a2:bd:14:ef","MTU":"1500","other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:3bf1ce7b-5536-e90f-c23c-35b5ed939eaa","MAC_autogenerated":true,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c5977d9b-cb50-a615-8488-1dd105d69802","$type":"VIF"},"OpaqueRef:c391575b-168f-e52b-59f7-9f852a2c6854":{"uuid":"bb0defd5-72e5-c055-1ecd-fecd6ea292c2","allowed_operations":["attach","unplug"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1","MAC":"5a:a2:9f:bc:37:cc","MTU":"1500","other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:fef3d0d3-2662-f68e-d089-aeff75595239","MAC_autogenerated":true,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c391575b-168f-e52b-59f7-9f852a2c6854","$type":"VIF"},"OpaqueRef:bf4da755-480b-e3fd-2bfe-f53e7204c8ae":{"uuid":"d1bff714-f53a-c71a-f8cf-0b4ae73ace19","allowed_operations":["attach"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43","MAC":"82:55:b9:d7:b3:f8","MTU":"1500","other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:4a948713-441c-c6ee-5610-fcfb2f8e9e7a","MAC_autogenerated":false,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bf4da755-480b-e3fd-2bfe-f53e7204c8ae","$type":"VIF"},"OpaqueRef:ba41d1a6-724e-aae8-3447-20f74014eb75":{"uuid":"f5ed8bb2-ec8f-4c0f-069d-22d29108712f","allowed_operations":["attach"],"current_operations":{},"device":"1","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:d4fa8fba-ec86-5928-a1bb-dd78b6fb5944","MAC":"d2:ad:e6:f2:cc:a8","MTU":"8244","other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:851e62ce-9caf-6c94-231f-63ead50a84c8","MAC_autogenerated":false,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ba41d1a6-724e-aae8-3447-20f74014eb75","$type":"VIF"},"OpaqueRef:b8df4453-542e-6c14-0eb1-174d48373bca":{"uuid":"8cd0c764-4939-5c6a-8117-750f22f0af55","allowed_operations":["attach","unplug"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64","MAC":"82:0f:c5:b7:1a:5f","MTU":"1500","other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:c5514241-fb70-3803-614e-22dcc3760b28","MAC_autogenerated":true,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b8df4453-542e-6c14-0eb1-174d48373bca","$type":"VIF"},"OpaqueRef:b5980de3-1a74-9f57-1e98-2a74184211dc":{"uuid":"c113676c-6dfe-fe82-049e-ccfd5adbc701","allowed_operations":["attach","unplug"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb","MAC":"42:5c:2c:95:fa:24","MTU":"1500","other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:51db07f9-b0f1-f603-8618-d0eaa385f94a","MAC_autogenerated":true,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b5980de3-1a74-9f57-1e98-2a74184211dc","$type":"VIF"},"OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf":{"uuid":"247526b2-49eb-9dd7-3469-bdabaabd9e6d","allowed_operations":["attach"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861","MAC":"82:55:b9:d7:b3:f8","MTU":"1500","other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:9f4eaa77-b552-ac17-b739-419b8335c9b4","MAC_autogenerated":false,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf","$type":"VIF"},"OpaqueRef:aa874254-b67c-e9e3-6a08-1c770c2dd8ac":{"uuid":"271b47db-c63d-fe1f-472e-fc708663b7be","allowed_operations":["attach","unplug"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d","MAC":"26:30:ec:8d:1f:90","MTU":"1500","other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:52ccaf4c-2f75-830a-5531-8293aa9e6bf5","MAC_autogenerated":false,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aa874254-b67c-e9e3-6a08-1c770c2dd8ac","$type":"VIF"},"OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba":{"uuid":"a13472ba-29ed-6b9c-29c7-f85c6b4faacd","allowed_operations":["attach","unplug"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf","MAC":"aa:40:53:21:d1:b8","MTU":"1500","other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:4354ca34-b0f8-f89f-69df-64dd978347e6","MAC_autogenerated":true,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba","$type":"VIF"},"OpaqueRef:59b884b0-521f-7b3e-6a91-319ded893e68":{"uuid":"70eb6943-d632-8512-d55b-1bfa82223e1a","allowed_operations":["attach"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386","MAC":"ba:c5:76:1a:ee:e3","MTU":"1500","other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:b554292e-be09-fd9a-6584-bfe8790fe350","MAC_autogenerated":true,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:59b884b0-521f-7b3e-6a91-319ded893e68","$type":"VIF"},"OpaqueRef:20349ad5-0a0d-4b80-dcc0-0037fa647182":{"uuid":"42e42abe-63ca-3429-60ff-fa02ba1ac804","allowed_operations":["attach","unplug"],"current_operations":{},"device":"0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","VM":"OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620","MAC":"ce:20:2b:38:7f:fd","MTU":"1500","other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:32e8453b-2263-febc-a5c1-600a78401604","MAC_autogenerated":true,"locking_mode":"network_default","ipv4_allowed":[],"ipv6_allowed":[],"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:20349ad5-0a0d-4b80-dcc0-0037fa647182","$type":"VIF"},"OpaqueRef:aef57ed4-e4d9-7f72-0376-b781a19bb9d2":{"uuid":"c50f1ff1-ce90-1dc9-74fa-196d9738f5a3","device":"eth0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","MAC":"90:2b:34:d3:ce:75","MTU":"1500","VLAN":"-1","metrics":"OpaqueRef:448b60c6-d510-5cdb-36b0-766d9455d608","physical":true,"currently_attached":true,"ip_configuration_mode":"Static","IP":"192.168.1.1","netmask":"255.255.255.0","gateway":"192.168.1.254","DNS":"192.168.1.254","bond_slave_of":"OpaqueRef:NULL","bond_master_of":[],"VLAN_master_of":"OpaqueRef:NULL","VLAN_slave_of":[],"management":true,"other_config":{},"disallow_unplug":false,"tunnel_access_PIF_of":[],"tunnel_transport_PIF_of":[],"ipv6_configuration_mode":"None","IPv6":[],"ipv6_gateway":"","primary_address_type":"IPv4","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:aef57ed4-e4d9-7f72-0376-b781a19bb9d2","$type":"PIF"},"OpaqueRef:971d6bc5-60f4-a331-bdee-444ee7cbf678":{"uuid":"8dc852d9-b43c-afbf-d2ed-77f703738d78","device":"eth0","network":"OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","MAC":"bc:5f:f4:59:3c:2e","MTU":"1500","VLAN":"-1","metrics":"OpaqueRef:853ddff6-c8a9-8407-b8cb-89bbdf5bcca4","physical":true,"currently_attached":true,"ip_configuration_mode":"DHCP","IP":"192.168.1.2","netmask":"255.255.255.0","gateway":"","DNS":"","bond_slave_of":"OpaqueRef:NULL","bond_master_of":[],"VLAN_master_of":"OpaqueRef:NULL","VLAN_slave_of":[],"management":true,"other_config":{},"disallow_unplug":false,"tunnel_access_PIF_of":[],"tunnel_transport_PIF_of":[],"ipv6_configuration_mode":"None","IPv6":["fe80::be5f:f4ff:fe59:3c2e/64"],"ipv6_gateway":"","primary_address_type":"IPv4","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:971d6bc5-60f4-a331-bdee-444ee7cbf678","$type":"PIF"},"OpaqueRef:8d2189b1-ab1d-446b-a019-e94fa8eab58f":{"uuid":"e0707a7f-c3d1-b019-e9fd-9cff0ad1fdae","device":"eth1","network":"OpaqueRef:4e265829-7517-3520-6a97-56b6ac0730c9","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","MAC":"68:05:ca:13:43:d3","MTU":"9000","VLAN":"-1","metrics":"OpaqueRef:edaef079-930a-6d2d-4a32-d9fbbdb1a9ea","physical":true,"currently_attached":true,"ip_configuration_mode":"Static","IP":"192.168.0.2","netmask":"255.255.255.0","gateway":"","DNS":"","bond_slave_of":"OpaqueRef:NULL","bond_master_of":[],"VLAN_master_of":"OpaqueRef:NULL","VLAN_slave_of":[],"management":false,"other_config":{"management_purpose":"Storage 1"},"disallow_unplug":true,"tunnel_access_PIF_of":[],"tunnel_transport_PIF_of":[],"ipv6_configuration_mode":"None","IPv6":["fe80::6a05:caff:fe12:b529/64"],"ipv6_gateway":"","primary_address_type":"IPv4","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8d2189b1-ab1d-446b-a019-e94fa8eab58f","$type":"PIF"},"OpaqueRef:06f53e3d-d8de-d4ed-6359-9e20b4fb0d21":{"uuid":"ce950f0d-f358-899e-17c3-70e687626556","device":"eth1","network":"OpaqueRef:4e265829-7517-3520-6a97-56b6ac0730c9","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","MAC":"68:05:ca:12:84:12","MTU":"9000","VLAN":"-1","metrics":"OpaqueRef:7b8383e2-be1b-77eb-7ac4-0e5148b8b982","physical":true,"currently_attached":true,"ip_configuration_mode":"Static","IP":"192.168.0.3","netmask":"255.255.255.0","gateway":"","DNS":"","bond_slave_of":"OpaqueRef:NULL","bond_master_of":[],"VLAN_master_of":"OpaqueRef:NULL","VLAN_slave_of":[],"management":false,"other_config":{"management_purpose":"Storage 1"},"disallow_unplug":true,"tunnel_access_PIF_of":[],"tunnel_transport_PIF_of":[],"ipv6_configuration_mode":"None","IPv6":[],"ipv6_gateway":"","primary_address_type":"IPv4","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:06f53e3d-d8de-d4ed-6359-9e20b4fb0d21","$type":"PIF"},"OpaqueRef:edaef079-930a-6d2d-4a32-d9fbbdb1a9ea":{"uuid":"840599ac-45d0-2109-de24-8b5b7f5bed99","io_read_kbs":0,"io_write_kbs":0,"carrier":true,"vendor_id":"8086","vendor_name":"Intel Corporation","device_id":"10d3","device_name":"82574L Gigabit Network Connection","speed":"1000","duplex":true,"pci_bus_path":"0000:01:00.0","last_updated":"2014-01-11T14:12:08.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:edaef079-930a-6d2d-4a32-d9fbbdb1a9ea","$type":"PIF_metrics"},"OpaqueRef:853ddff6-c8a9-8407-b8cb-89bbdf5bcca4":{"uuid":"01371529-9b20-9f7a-aa38-ed7b1697e001","io_read_kbs":0,"io_write_kbs":0,"carrier":true,"vendor_id":"10ec","vendor_name":"Realtek Semiconductor Co., Ltd.","device_id":"8168","device_name":"RTL8111/8168B PCI Express Gigabit Ethernet controller","speed":"100","duplex":true,"pci_bus_path":"0000:03:00.0","last_updated":"2014-01-11T14:12:08.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:853ddff6-c8a9-8407-b8cb-89bbdf5bcca4","$type":"PIF_metrics"},"OpaqueRef:7b8383e2-be1b-77eb-7ac4-0e5148b8b982":{"uuid":"f929770b-d498-2bc1-e8f6-765029406618","io_read_kbs":0,"io_write_kbs":0,"carrier":true,"vendor_id":"8086","vendor_name":"Intel Corporation","device_id":"10d3","device_name":"82574L Gigabit Network Connection","speed":"1000","duplex":true,"pci_bus_path":"0000:01:00.0","last_updated":"2014-01-11T14:04:21.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7b8383e2-be1b-77eb-7ac4-0e5148b8b982","$type":"PIF_metrics"},"OpaqueRef:448b60c6-d510-5cdb-36b0-766d9455d608":{"uuid":"5efd7bd4-d9a8-8d60-8fa9-e8628b336066","io_read_kbs":0,"io_write_kbs":0,"carrier":true,"vendor_id":"10ec","vendor_name":"Realtek Semiconductor Co., Ltd.","device_id":"8168","device_name":"RTL8111/8168 PCI Express Gigabit Ethernet controller","speed":"100","duplex":true,"pci_bus_path":"0000:02:00.0","last_updated":"2014-01-11T14:11:26.000Z","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:448b60c6-d510-5cdb-36b0-766d9455d608","$type":"PIF_metrics"},"OpaqueRef:f8bd92ca-9285-ced8-196e-91120cc8e375":{"uuid":"92dacf5d-51c2-0f03-8aa9-43c25deabc31","name_label":"LVHD over iSCSI","name_description":"SR plugin which represents disks as Logical Volumes within a Volume Group created on an iSCSI LUN","type":"lvmoiscsi","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"SCSIid":"The scsi_id of the destination LUN","target":"IP address or hostname of the iSCSI target","targetIQN":"The IQN of the target LUN group to be attached","chapuser":"The username to be used during CHAP authentication","chappassword":"The password to be used during CHAP authentication","incoming_chapuser":"The incoming username to be used during bi-directional CHAP authentication (optional)","incoming_chappassword":"The incoming password to be used during bi-directional CHAP authentication (optional)","port":"The network port number on which to query the target","multihomed":"Enable multi-homing to this target, true or false (optional, defaults to same value as host.other_config:multipathing)","usediscoverynumber":"The specific iscsi record index to use. (optional)","allocation":"Valid values are thick or thin (optional, defaults to thick)"},"capabilities":["SR_PROBE","SR_UPDATE","SR_METADATA","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_GENERATE_CONFIG","VDI_CLONE","VDI_SNAPSHOT","VDI_RESIZE","VDI_RESET_ON_BOOT","VDI_UPDATE","VDI_ACTIVATE","VDI_DEACTIVATE"],"features":{"SR_PROBE":"1","SR_UPDATE":"1","SR_METADATA":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_GENERATE_CONFIG":"1","VDI_CLONE":"1","VDI_SNAPSHOT":"1","VDI_RESIZE":"1","VDI_RESET_ON_BOOT":"2","VDI_UPDATE":"1","VDI_ACTIVATE":"1","VDI_DEACTIVATE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/LVMoISCSISR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f8bd92ca-9285-ced8-196e-91120cc8e375","$type":"SM"},"OpaqueRef:ea9c2213-712b-2953-e085-0df9c69d53c8":{"uuid":"fd713629-934d-f18a-be26-8832f7f41b5e","name_label":"NFS VHD","name_description":"SR plugin which stores disks as VHD files on a remote NFS filesystem","type":"nfs","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"server":"hostname or IP address of NFS server (required)","serverpath":"path on remote server (required)"},"capabilities":["SR_PROBE","SR_UPDATE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_UPDATE","VDI_CLONE","VDI_SNAPSHOT","VDI_RESIZE","VDI_GENERATE_CONFIG","VDI_RESET_ON_BOOT","VDI_ACTIVATE","VDI_DEACTIVATE"],"features":{"SR_PROBE":"1","SR_UPDATE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_UPDATE":"1","VDI_CLONE":"1","VDI_SNAPSHOT":"1","VDI_RESIZE":"1","VDI_GENERATE_CONFIG":"1","VDI_RESET_ON_BOOT":"2","VDI_ACTIVATE":"1","VDI_DEACTIVATE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/NFSSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ea9c2213-712b-2953-e085-0df9c69d53c8","$type":"SM"},"OpaqueRef:e8714c7c-c596-f702-a086-1eec90280b5e":{"uuid":"a85fc758-92c1-7989-00be-0844bf2858a3","name_label":"EqualLogic","name_description":"SR driver for mapping of LUNs to VDIs on a EQUALLOGIC array group, providing use of fast snapshot and clone features on the array","type":"equal","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"0.1","required_api_version":"0.1","configuration":{"target":"IP address or hostname of the EQUALLOGIC group","control":"IP address or hostname of the control interface for the EQUALLOGIC (optional)","username":"Login username to be used by the driver for manipulating volumes on the filer","password":"Login password to be used by the driver for manipulating volumes on the filer","chapuser":"The username to be used during CHAP authentication (optional)","chappassword":"The password to be used during CHAP authentication (optional)","allocation":"Valid values are thick or thin (optional, defaults to thick)","storagepool":"The disk pool on which the Volumes should be stored (optional)"},"capabilities":["SR_PROBE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_CLONE","VDI_SNAPSHOT","VDI_RESIZE"],"features":{"SR_PROBE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_CLONE":"1","VDI_SNAPSHOT":"1","VDI_RESIZE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/EQUALSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e8714c7c-c596-f702-a086-1eec90280b5e","$type":"SM"},"OpaqueRef:cf6eb619-422e-bc89-09f9-722dbb9bd33c":{"uuid":"cd92bbaf-e04e-8f4d-7006-77a2572260eb","name_label":"Local VHD on LVM","name_description":"SR plugin which represents disks as VHD disks on Logical Volumes within a locally-attached Volume Group","type":"lvm","vendor":"XenSource Inc","copyright":"(C) 2008 XenSource Inc","version":"1.0","required_api_version":"1.0","configuration":{"device":"local device path (required) (e.g. /dev/sda3)"},"capabilities":["SR_PROBE","SR_UPDATE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_CLONE","VDI_SNAPSHOT","VDI_RESIZE","VDI_RESET_ON_BOOT","VDI_UPDATE","VDI_ACTIVATE","VDI_DEACTIVATE"],"features":{"SR_PROBE":"1","SR_UPDATE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_CLONE":"1","VDI_SNAPSHOT":"1","VDI_RESIZE":"1","VDI_RESET_ON_BOOT":"2","VDI_UPDATE":"1","VDI_ACTIVATE":"1","VDI_DEACTIVATE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/LVMSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf6eb619-422e-bc89-09f9-722dbb9bd33c","$type":"SM"},"OpaqueRef:c98c6a04-f03e-c9bb-ebab-b8474aced651":{"uuid":"05d0b8f3-c5a1-e568-6732-33b2cc134bcb","name_label":"NetApp","name_description":"SR driver for mapping of LUNs to VDIs on a NETAPP server, providing use of fast snapshot and clone features on the filer","type":"netapp","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"0.1","required_api_version":"0.1","configuration":{"target":"IP address or hostname of the NETAPP filer","controlport":"Control connection port for the NETAPP filer (optional, defaults to 80)","usehttps":"use OpenSSL for a secure transport connection, true or false (optional, defaults to false)","username":"Login username to be used by the driver for manipulating LUNs on the filer","password":"Login password to be used by the driver for manipulating LUNs on the filer","aggregate":"The aggregate name on which the Flexvol should be created on the filer. (optional)","FlexVols":"The number of FlexVols to allocate per-SR. (optional)","chapuser":"The username to be used during CHAP authentication (optional)","chappassword":"The password to be used during CHAP authentication (optional)","allocation":"Valid values are thick or thin (optional, defaults to thick)","asis":"Enable A-SIS de-duplication for this SR, true or false (optional, defaults to false)","multihomed":"Enable multi-homing to this target, true or false (optional, defaults to same value as host.other_config:multipathing)"},"capabilities":["SR_PROBE","SR_UPDATE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_CLONE","VDI_SNAPSHOT","VDI_RESIZE"],"features":{"SR_PROBE":"1","SR_UPDATE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_CLONE":"1","VDI_SNAPSHOT":"1","VDI_RESIZE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/NETAPPSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c98c6a04-f03e-c9bb-ebab-b8474aced651","$type":"SM"},"OpaqueRef:c3c31cb8-cdc2-2e15-d901-07d66526286c":{"uuid":"2515e99b-0d9f-a3a3-1a3e-ebeb52d1b15b","name_label":"HBA LUN-per-VDI driver","name_description":"SR plugin which represents LUNs as VDIs sourced by hardware HBA adapters, e.g. hardware-based iSCSI or FC support","type":"hba","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"type":"HBA type (optional) (e.g. FC, iSCSI, SAS etc..)"},"capabilities":["SR_PROBE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_INTRODUCE"],"features":{"SR_PROBE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_INTRODUCE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/HBASR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c3c31cb8-cdc2-2e15-d901-07d66526286c","$type":"SM"},"OpaqueRef:bcfff5dc-f52f-c27d-e4f6-bab7052f2c85":{"uuid":"1abb3076-6a1c-daef-3f13-fdfa662a2aeb","name_label":"LVHD over FC","name_description":"SR plugin which represents disks as VHDs on Logical Volumes within a Volume Group created on an HBA LUN, e.g. hardware-based iSCSI or FC support","type":"lvmohba","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"SCSIid":"The scsi_id of the destination LUN","allocation":"Valid values are thick or thin (optional, defaults to thick)"},"capabilities":["SR_PROBE","SR_UPDATE","SR_METADATA","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_GENERATE_CONFIG","VDI_SNAPSHOT","VDI_CLONE","VDI_RESIZE","VDI_RESET_ON_BOOT","VDI_UPDATE","VDI_ACTIVATE","VDI_DEACTIVATE"],"features":{"SR_PROBE":"1","SR_UPDATE":"1","SR_METADATA":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_GENERATE_CONFIG":"1","VDI_SNAPSHOT":"1","VDI_CLONE":"1","VDI_RESIZE":"1","VDI_RESET_ON_BOOT":"2","VDI_UPDATE":"1","VDI_ACTIVATE":"1","VDI_DEACTIVATE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/LVMoHBASR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bcfff5dc-f52f-c27d-e4f6-bab7052f2c85","$type":"SM"},"OpaqueRef:b58e26f3-48fd-a13d-8398-e278cb559d23":{"uuid":"582440a7-bdf7-8614-0b29-f2c89a7064f5","name_label":"ISO","name_description":"Handles CD images stored as files in iso format","type":"iso","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"location":"path to mount (required) (e.g. server:/path)","options":"extra options to pass to mount (deprecated) (e.g. '-o ro')","type":"cifs or nfs"},"capabilities":["VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH"],"features":{"VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/ISOSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b58e26f3-48fd-a13d-8398-e278cb559d23","$type":"SM"},"OpaqueRef:af9540fe-3ec1-fd2f-be0b-ff0a789b925f":{"uuid":"22fdf682-8094-6c25-a2c6-feaf9405b589","name_label":"udev","name_description":"SR plugin which represents devices plugged in via udev as VDIs","type":"udev","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.1","configuration":{"location":"path to mount (required) (e.g. server:/path)"},"capabilities":["VDI_INTRODUCE","VDI_ATTACH","VDI_DETACH","VDI_UPDATE","SR_UPDATE"],"features":{"VDI_INTRODUCE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_UPDATE":"1","SR_UPDATE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/udevSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:af9540fe-3ec1-fd2f-be0b-ff0a789b925f","$type":"SM"},"OpaqueRef:92e22dba-85fe-b8f4-ffce-138f840205c8":{"uuid":"22c68d35-1a4c-fdfd-30c8-fdbf46c87c0b","name_label":"Local EXT3 VHD","name_description":"SR plugin which represents disks as VHD files stored on a local EXT3 filesystem, created inside an LVM volume","type":"ext","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"device":"local device path (required) (e.g. /dev/sda3)"},"capabilities":["SR_PROBE","SR_UPDATE","SR_SUPPORTS_LOCAL_CACHING","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_UPDATE","VDI_CLONE","VDI_SNAPSHOT","VDI_RESIZE","VDI_RESET_ON_BOOT","VDI_ACTIVATE","VDI_DEACTIVATE"],"features":{"SR_PROBE":"1","SR_UPDATE":"1","SR_SUPPORTS_LOCAL_CACHING":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_UPDATE":"1","VDI_CLONE":"1","VDI_SNAPSHOT":"1","VDI_RESIZE":"1","VDI_RESET_ON_BOOT":"2","VDI_ACTIVATE":"1","VDI_DEACTIVATE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/EXTSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:92e22dba-85fe-b8f4-ffce-138f840205c8","$type":"SM"},"OpaqueRef:8be1ee99-cd26-235d-89f4-28fbd5260766":{"uuid":"4f8f5130-eb32-890a-b82a-164f44f19420","name_label":"cslg","name_description":"CSLG SR plugin","type":"cslg","vendor":"Citrix Systems Inc","copyright":"(C) 2011 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"target":"IP address or hostname of the array MGT interface","username":"Login username to be used by the adapter","password":"Login password to be used by the adapter","port":"port number to connect to storage target [optional]","adapterid":"storage system adapter ID","storageSystemId":"storage system id","storagePoolId":"storage pool id, e.g RAID group","protocol":"xen storage protocol (fc, iscsi) [optional]","chapuser":"ISCSI CHAP username [optional]","chappassword":"ISCSI CHAP password [optional]","provision-type":"thick/thin [optional]","provision-options":"options (dedup) [optional]","raid-type":"Raid type [optional]"},"capabilities":["SR_PROBE","SR_UPDATE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_RESIZE","VDI_RESIZE_ONLINE","VDI_SNAPSHOT","VDI_CLONE","VDI_INTRODUCE","VDI_UPDATE"],"features":{"SR_PROBE":"1","SR_UPDATE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_RESIZE":"1","VDI_RESIZE_ONLINE":"1","VDI_SNAPSHOT":"1","VDI_CLONE":"1","VDI_INTRODUCE":"1","VDI_UPDATE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/CSLGSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8be1ee99-cd26-235d-89f4-28fbd5260766","$type":"SM"},"OpaqueRef:75b71fc2-889b-17ed-7e4c-9862ac8fda71":{"uuid":"4e280971-acc8-6c63-3553-d70d7e6f5a77","name_label":"iSCSI","name_description":"Base ISCSI SR driver, provides a LUN-per-VDI. Does not support creation of VDIs but accesses existing LUNs on a target.","type":"iscsi","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"target":"IP address or hostname of the iSCSI target (required)","targetIQN":"The IQN of the target LUN group to be attached (required)","chapuser":"The username to be used during CHAP authentication (optional)","chappassword":"The password to be used during CHAP authentication (optional)","incoming_chapuser":"The incoming username to be used during bi-directional CHAP authentication (optional)","incoming_chappassword":"The incoming password to be used during bi-directional CHAP authentication (optional)","port":"The network port number on which to query the target (optional)","multihomed":"Enable multi-homing to this target, true or false (optional, defaults to same value as host.other_config:multipathing)"},"capabilities":["SR_PROBE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_INTRODUCE"],"features":{"SR_PROBE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_INTRODUCE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/ISCSISR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:75b71fc2-889b-17ed-7e4c-9862ac8fda71","$type":"SM"},"OpaqueRef:49d060e8-7891-f321-fcac-00ba9d9fa580":{"uuid":"588ea99c-6834-cedd-976d-35f30633c4bc","name_label":"dummy","name_description":"SR plugin which manages fake data","type":"dummy","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.1","configuration":{},"capabilities":["SR_PROBE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_ACTIVATE","VDI_DEACTIVATE","VDI_CLONE","VDI_SNAPSHOT","VDI_RESIZE","VDI_INTRODUCE"],"features":{"SR_PROBE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_ACTIVATE":"1","VDI_DEACTIVATE":"1","VDI_CLONE":"1","VDI_SNAPSHOT":"1","VDI_RESIZE":"1","VDI_INTRODUCE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/DummySR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:49d060e8-7891-f321-fcac-00ba9d9fa580","$type":"SM"},"OpaqueRef:0b59cdbc-0e39-9b45-b6a2-e30fa698bd82":{"uuid":"3b97c990-3ae5-c372-27e7-9312edd12912","name_label":"Local EXT3 VHD","name_description":"SR plugin which represents disks as VHD files stored on a local path","type":"file","vendor":"Citrix Systems Inc","copyright":"(C) 2008 Citrix Systems Inc","version":"1.0","required_api_version":"1.0","configuration":{"path":"path where images are stored (required)"},"capabilities":["SR_PROBE","SR_UPDATE","VDI_CREATE","VDI_DELETE","VDI_ATTACH","VDI_DETACH","VDI_CLONE","VDI_SNAPSHOT","VDI_RESIZE","VDI_ACTIVATE","VDI_DEACTIVATE"],"features":{"SR_PROBE":"1","SR_UPDATE":"1","VDI_CREATE":"1","VDI_DELETE":"1","VDI_ATTACH":"1","VDI_DETACH":"1","VDI_CLONE":"1","VDI_SNAPSHOT":"1","VDI_RESIZE":"1","VDI_ACTIVATE":"1","VDI_DEACTIVATE":"1"},"other_config":{},"driver_filename":"/opt/xensource/sm/FileSR","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0b59cdbc-0e39-9b45-b6a2-e30fa698bd82","$type":"SM"},"OpaqueRef:ec76bd6a-f2c0-636d-ca72-de8fb42d6eea":{"uuid":"dc922703-d409-4bdf-56dd-6b5aabaea6fc","name_label":"Removable storage","name_description":"","allowed_operations":["vdi_introduce","pbd_create","pbd_destroy","plug","update","scan","vdi_clone","unplug"],"current_operations":{},"VDIs":[],"PBDs":["OpaqueRef:93320534-824f-850a-64a2-bcbfdc2e0927"],"virtual_allocation":"0","physical_utilisation":"0","physical_size":"0","type":"udev","content_type":"disk","shared":false,"other_config":{"i18n-original-value-name_label":"Removable storage","i18n-key":"local-hotplug-disk"},"tags":[],"sm_config":{"type":"block"},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ec76bd6a-f2c0-636d-ca72-de8fb42d6eea","$type":"SR"},"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee":{"uuid":"b09ffdf4-ac78-89bb-1300-1c7fcef141ba","name_label":"Zfs","name_description":"iSCSI SR [192.168.0.100 (iqn.1986-03.com.sun:02:ba2ab54c-2d14-eb74-d6f9-ef7c4f28ff1e; LUN 0: A83BCKLAF: 2048 GB (NEXENTA))]","allowed_operations":["vdi_create","vdi_snapshot","pbd_create","pbd_destroy","plug","update","vdi_destroy","scan","vdi_clone","vdi_resize","unplug"],"current_operations":{},"VDIs":["OpaqueRef:b4a1573f-c235-8acd-4625-dfbcb2beb523","OpaqueRef:098a2155-605b-241e-f775-a05c2133874e","OpaqueRef:f7d900f9-a4fe-9a3e-ead8-28db301d26e8","OpaqueRef:f26d2af5-b529-4d16-21d1-a56965e7bfb1","OpaqueRef:ec5ce10e-023e-9a9f-eef7-a64e4c6d7b28","OpaqueRef:e0eb5eb1-a485-fcfc-071e-fafa17f9ac48","OpaqueRef:c4aa5d87-4115-c359-9cdf-c16fbf56cf2c","OpaqueRef:b06a9d3f-5132-e58f-25c4-ef94d5b38986","OpaqueRef:a4dd8a73-5393-81ce-abce-fc1502490a6d","OpaqueRef:83331526-8bd8-9644-0a7d-9f645f5fcd70","OpaqueRef:693bef17-aa19-63f8-3775-7d3b2dbce9d6","OpaqueRef:67618138-57df-e90a-74c6-402ad62d657b","OpaqueRef:5f1d5117-1033-b12a-92a8-99f206c9dbba","OpaqueRef:287084c1-241a-58df-929a-cbe2e7454a56","OpaqueRef:1f7f9828-f4e7-41dd-20e6-3bf57c559a78"],"PBDs":["OpaqueRef:ff32de74-138c-9d80-ab58-c631d2aa0e71","OpaqueRef:200674ae-d9ab-2caa-a283-4fa3d14592fd"],"virtual_allocation":"202358390784","physical_utilisation":"205831274496","physical_size":"2199010672640","type":"lvmoiscsi","content_type":"","shared":true,"other_config":{"auto-scan":"false"},"tags":[],"sm_config":{"allocation":"thick","use_vhd":"true","multipathable":"true","devserial":"scsi-3600144f0d43d7eb7a10c523192cf0001"},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","$type":"SR"},"OpaqueRef:ca1f4e15-4591-d47a-1805-f6d866e31733":{"uuid":"238f92bd-f724-a772-7f0f-c4611a4c7458","name_label":"Removable storage","name_description":"","allowed_operations":["vdi_introduce","pbd_create","pbd_destroy","plug","update","scan","vdi_clone","unplug"],"current_operations":{},"VDIs":[],"PBDs":["OpaqueRef:66b06c7a-b59a-060e-e5f0-1e645b4b065b"],"virtual_allocation":"0","physical_utilisation":"0","physical_size":"0","type":"udev","content_type":"disk","shared":false,"other_config":{"i18n-original-value-name_label":"Removable storage","i18n-key":"local-hotplug-disk"},"tags":[],"sm_config":{"type":"block"},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ca1f4e15-4591-d47a-1805-f6d866e31733","$type":"SR"},"OpaqueRef:804177dc-072c-d4ca-0f89-b97befb25f21":{"uuid":"4ef712c6-0087-ab0f-540c-20e4f089282e","name_label":"Local storage","name_description":"","allowed_operations":["vdi_create","vdi_snapshot","pbd_create","pbd_destroy","plug","update","vdi_destroy","scan","vdi_clone","vdi_resize","unplug"],"current_operations":{},"VDIs":[],"PBDs":["OpaqueRef:537c4f6f-7620-be3f-9999-697443991b2c"],"virtual_allocation":"0","physical_utilisation":"4194304","physical_size":"51417972736","type":"lvm","content_type":"user","shared":false,"other_config":{"i18n-original-value-name_label":"Local storage","i18n-key":"local-storage"},"tags":[],"sm_config":{"allocation":"thick","use_vhd":"true","devserial":"scsi-SATA_INTEL_SSDSC2CT0BTMP307203EJ060AGN_"},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:804177dc-072c-d4ca-0f89-b97befb25f21","$type":"SR"},"OpaqueRef:7c88a8c6-fc48-8836-28fa-212f67c42d2f":{"uuid":"0674925f-0f34-d884-dceb-f903659ff975","name_label":"Local storage","name_description":"","allowed_operations":["vdi_create","vdi_snapshot","pbd_create","pbd_destroy","plug","update","vdi_destroy","scan","vdi_clone","vdi_resize","unplug"],"current_operations":{},"VDIs":["OpaqueRef:c2483b13-5a77-c772-142b-5a9a07b014a2","OpaqueRef:b5c202d8-eada-ee27-9a5a-7dd6a58a1d84"],"PBDs":["OpaqueRef:b641552a-8c92-71b3-c0a2-e4dd3d04c215"],"virtual_allocation":"25836912640","physical_utilisation":"25841106944","physical_size":"51417972736","type":"lvm","content_type":"user","shared":false,"other_config":{"i18n-original-value-name_label":"Local storage","i18n-key":"local-storage"},"tags":[],"sm_config":{"allocation":"thick","use_vhd":"true","devserial":"scsi-SATA_INTEL_SSDSC2CT0BTMP301605F8060AGN_"},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7c88a8c6-fc48-8836-28fa-212f67c42d2f","$type":"SR"},"OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047":{"uuid":"0922fad2-6b8c-3ba9-5bcf-9a65c9a81f66","name_label":"NFS ISO library","name_description":"NFS ISO Library [192.168.1.109:/media/nfs]","allowed_operations":["vdi_create","pbd_create","pbd_destroy","plug","vdi_destroy","scan","vdi_clone","unplug"],"current_operations":{},"VDIs":["OpaqueRef:e11213fa-2a82-1f2f-153d-082fe82961b7","OpaqueRef:bccda788-b59a-ed89-2018-ac2b12db1e7f","OpaqueRef:b57992ea-5bb3-05b2-38dc-58c2856c04b0","OpaqueRef:42db42db-f79a-252f-aa2f-81e38e041853"],"PBDs":["OpaqueRef:3ecc1b3e-78cb-e39e-1618-b4fd5e268df0","OpaqueRef:0c1d3862-5a38-e4cc-4a46-d8358a622461"],"virtual_allocation":"240961060864","physical_utilisation":"5329780736","physical_size":"240961060864","type":"iso","content_type":"iso","shared":true,"other_config":{"auto-scan":"true"},"tags":[],"sm_config":{"iso_type":"nfs_iso"},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047","$type":"SR"},"OpaqueRef:557155b2-f092-3417-f509-7ee35b1d42da":{"uuid":"43ace0aa-5dc3-aa1e-2032-9dc3619ef453","name_label":"XenServer Tools","name_description":"XenServer Tools ISOs","allowed_operations":["pbd_create","pbd_destroy","plug","scan","vdi_clone","unplug"],"current_operations":{},"VDIs":["OpaqueRef:f542d9b2-7fe1-3227-1071-d6892704dea8","OpaqueRef:ce8dbd29-77ac-71f4-789f-c8c24503d31b"],"PBDs":["OpaqueRef:b70f8e06-07a8-a5e7-2856-f221c822e9b2","OpaqueRef:12e1d8fa-af07-ad26-91f0-9e8f00068a3e"],"virtual_allocation":"0","physical_utilisation":"-1","physical_size":"-1","type":"iso","content_type":"iso","shared":true,"other_config":{"xensource_internal":"true","xenserver_tools_sr":"true","i18n-key":"xenserver-tools","i18n-original-value-name_label":"XenServer Tools","i18n-original-value-name_description":"XenServer Tools ISOs"},"tags":[],"sm_config":{},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:557155b2-f092-3417-f509-7ee35b1d42da","$type":"SR"},"OpaqueRef:31be9b5e-882a-a8ae-0edf-bf8942b49b5a":{"uuid":"f4ab4d5b-3ba9-d9ad-e79f-1bd89192e8c8","name_label":"DVD drives","name_description":"Physical DVD drives","allowed_operations":["vdi_introduce","pbd_create","pbd_destroy","plug","update","scan","vdi_clone","unplug"],"current_operations":{},"VDIs":[],"PBDs":["OpaqueRef:f0f98779-5cf8-cabc-edc3-631a2d63d89c"],"virtual_allocation":"0","physical_utilisation":"0","physical_size":"0","type":"udev","content_type":"iso","shared":false,"other_config":{"i18n-original-value-name_description":"Physical DVD drives","i18n-original-value-name_label":"DVD drives","i18n-key":"local-hotplug-cd"},"tags":[],"sm_config":{"type":"cd"},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:31be9b5e-882a-a8ae-0edf-bf8942b49b5a","$type":"SR"},"OpaqueRef:0815a82c-7bad-bbb1-520f-c9cfe5befde3":{"uuid":"14184a7e-0af6-78f1-e4ed-b575a0ceb40b","name_label":"DVD drives","name_description":"Physical DVD drives","allowed_operations":["vdi_introduce","pbd_create","pbd_destroy","plug","update","scan","vdi_clone","unplug"],"current_operations":{},"VDIs":[],"PBDs":["OpaqueRef:992460b7-13f0-a91e-450d-a625962f67cd"],"virtual_allocation":"0","physical_utilisation":"0","physical_size":"0","type":"udev","content_type":"iso","shared":false,"other_config":{"i18n-original-value-name_description":"Physical DVD drives","i18n-original-value-name_label":"DVD drives","i18n-key":"local-hotplug-cd"},"tags":[],"sm_config":{"type":"cd"},"blobs":{},"local_cache_enabled":false,"introduced_by":"OpaqueRef:NULL","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0815a82c-7bad-bbb1-520f-c9cfe5befde3","$type":"SR"},"OpaqueRef:f7d900f9-a4fe-9a3e-ead8-28db301d26e8":{"uuid":"dd28a2e3-1918-48ad-a37c-204d2f3cbe78","name_label":"auths","name_description":"","allowed_operations":["forget","generate_config","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:9c79f0d5-5980-6f28-0240-6cdb42b31876"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"user","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"dd28a2e3-1918-48ad-a37c-204d2f3cbe78","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vhd-parent":"d02c97be-3cc5-4d77-bcce-fe75df43a2ee","vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":["OpaqueRef:098a2155-605b-241e-f775-a05c2133874e"],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f7d900f9-a4fe-9a3e-ead8-28db301d26e8","$type":"VDI"},"OpaqueRef:f542d9b2-7fe1-3227-1071-d6892704dea8":{"uuid":"5b2c1067-e8a0-4a2e-9099-4d2bf1a9539a","name_label":"XenCenter.iso","name_description":"","allowed_operations":["forget","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:557155b2-f092-3417-f509-7ee35b1d42da","VBDs":[],"crash_dumps":[],"virtual_size":"53635072","physical_utilisation":"53635072","type":"user","sharable":false,"read_only":true,"other_config":{},"storage_lock":false,"location":"XenCenter.iso","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f542d9b2-7fe1-3227-1071-d6892704dea8","$type":"VDI"},"OpaqueRef:f26d2af5-b529-4d16-21d1-a56965e7bfb1":{"uuid":"25e61a5c-760c-4be8-a1f6-1c647f8a4565","name_label":"ceph","name_description":"","allowed_operations":["clone","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:1bd20244-01a0-fec3-eb00-79a453a56446"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"user","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"25e61a5c-760c-4be8-a1f6-1c647f8a4565","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"host_OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145":"RW","vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f26d2af5-b529-4d16-21d1-a56965e7bfb1","$type":"VDI"},"OpaqueRef:ec5ce10e-023e-9a9f-eef7-a64e4c6d7b28":{"uuid":"d02c97be-3cc5-4d77-bcce-fe75df43a2ee","name_label":"base copy","name_description":"","allowed_operations":["forget","generate_config","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":[],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"419430400","type":"user","sharable":false,"read_only":true,"other_config":{},"storage_lock":false,"location":"d02c97be-3cc5-4d77-bcce-fe75df43a2ee","managed":false,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vhd-blocks":"eJxbwGDAAAJ2D8DU/wUM/9//ADIYmYGc5v//9fkY/j/TY3i/hIHhBVCYvwGEqAgaGBqg9MCAhgGzGQIeACEIaDA0MDd8oL/9BxgcwPT/fxC+gn4DXe2Hhb+B6hUwbQ/E5+nrhBENYOH/YEBdMXAAABX3H58=","vdi_type":"vhd","vhd-parent":"e68f21af-4824-48d4-987a-b056470bfa79"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ec5ce10e-023e-9a9f-eef7-a64e4c6d7b28","$type":"VDI"},"OpaqueRef:e11213fa-2a82-1f2f-153d-082fe82961b7":{"uuid":"a906eef3-2c47-4404-af7e-2a797514bf31","name_label":"debian-wheezy-DI-rc1-amd64-i386-netinst.iso","name_description":"","allowed_operations":["forget","destroy","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047","VBDs":[],"crash_dumps":[],"virtual_size":"507510784","physical_utilisation":"507510784","type":"user","sharable":false,"read_only":true,"other_config":{"content_id":"f9c07b08-1933-7f1a-0417-534403ac5f23"},"storage_lock":false,"location":"debian-wheezy-DI-rc1-amd64-i386-netinst.iso","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e11213fa-2a82-1f2f-153d-082fe82961b7","$type":"VDI"},"OpaqueRef:e0eb5eb1-a485-fcfc-071e-fafa17f9ac48":{"uuid":"414b4fb2-f40b-4d0f-b915-1f5a6d3fca65","name_label":"ceph","name_description":"","allowed_operations":["forget","generate_config","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:182e2fec-67c3-eacb-b2f9-c493add21d65"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"user","sharable":false,"read_only":false,"other_config":{"content_id":"5a28cdc1-741c-843c-febe-9e4d617a06c5"},"storage_lock":false,"location":"414b4fb2-f40b-4d0f-b915-1f5a6d3fca65","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vhd-parent":"e68f21af-4824-48d4-987a-b056470bfa79","vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e0eb5eb1-a485-fcfc-071e-fafa17f9ac48","$type":"VDI"},"OpaqueRef:ce8dbd29-77ac-71f4-789f-c8c24503d31b":{"uuid":"767c45cf-9715-432f-baa7-dfb15eefbe38","name_label":"xs-tools.iso","name_description":"","allowed_operations":["forget","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:557155b2-f092-3417-f509-7ee35b1d42da","VBDs":[],"crash_dumps":[],"virtual_size":"119197696","physical_utilisation":"119197696","type":"user","sharable":false,"read_only":true,"other_config":{"content_id":"0f3e4aaf-1bf7-8ab3-60be-423450e433e8"},"storage_lock":false,"location":"xs-tools-6.2.0.iso","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"xs-tools-build":"0","xs-tools":"true","xs-tools-version":"6.2.0"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ce8dbd29-77ac-71f4-789f-c8c24503d31b","$type":"VDI"},"OpaqueRef:c4aa5d87-4115-c359-9cdf-c16fbf56cf2c":{"uuid":"4fc9cfad-6693-433f-abfe-718ebdf3002a","name_label":"ceph","name_description":"","allowed_operations":["clone","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:4ca79a63-da5f-03c6-a9e3-1822331a18e1"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"user","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"4fc9cfad-6693-433f-abfe-718ebdf3002a","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"host_OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692":"RW","vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c4aa5d87-4115-c359-9cdf-c16fbf56cf2c","$type":"VDI"},"OpaqueRef:c2483b13-5a77-c772-142b-5a9a07b014a2":{"uuid":"ba2635ec-e5b7-4d92-947e-fc349ead12ea","name_label":"auths1 0","name_description":"Created by template provisioner","allowed_operations":["forget","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:7c88a8c6-fc48-8836-28fa-212f67c42d2f","VBDs":["OpaqueRef:4f5fce42-2516-ffd9-ecad-da71f8d83631","OpaqueRef:10624386-01a5-2bbd-583a-af3dfdd78785"],"crash_dumps":[],"virtual_size":"8589934592","physical_utilisation":"8615100416","type":"system","sharable":false,"read_only":false,"other_config":{"content_id":"58fb348a-6834-b58b-c33e-2561a58331a9"},"storage_lock":false,"location":"ba2635ec-e5b7-4d92-947e-fc349ead12ea","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c2483b13-5a77-c772-142b-5a9a07b014a2","$type":"VDI"},"OpaqueRef:bccda788-b59a-ed89-2018-ac2b12db1e7f":{"uuid":"d393ba77-b57c-428b-b39d-3acdcd86581e","name_label":"XCP-1.6-61809c.iso","name_description":"","allowed_operations":["forget","destroy","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047","VBDs":[],"crash_dumps":[],"virtual_size":"411975680","physical_utilisation":"411975680","type":"user","sharable":false,"read_only":true,"other_config":{},"storage_lock":false,"location":"XCP-1.6-61809c.iso","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bccda788-b59a-ed89-2018-ac2b12db1e7f","$type":"VDI"},"OpaqueRef:b5c202d8-eada-ee27-9a5a-7dd6a58a1d84":{"uuid":"b6b7750a-ca3a-4b2f-bc31-bba545448568","name_label":"Windows XP SP3 0","name_description":"Created by template provisioner","allowed_operations":["clone","snapshot"],"current_operations":{},"SR":"OpaqueRef:7c88a8c6-fc48-8836-28fa-212f67c42d2f","VBDs":["OpaqueRef:114cbf4c-64da-2d64-472e-9aee8e81b71b"],"crash_dumps":[],"virtual_size":"17179869184","physical_utilisation":"17221812224","type":"system","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"b6b7750a-ca3a-4b2f-bc31-bba545448568","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"host_OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145":"RW","vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b5c202d8-eada-ee27-9a5a-7dd6a58a1d84","$type":"VDI"},"OpaqueRef:b57992ea-5bb3-05b2-38dc-58c2856c04b0":{"uuid":"a18495a8-7598-48a2-a033-fe835e3cd149","name_label":"WXPVOL_EN.iso","name_description":"","allowed_operations":["forget","destroy","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047","VBDs":[],"crash_dumps":[],"virtual_size":"652869632","physical_utilisation":"652869632","type":"user","sharable":false,"read_only":true,"other_config":{"content_id":"8924639d-d1f9-448d-de15-2a531997110a"},"storage_lock":false,"location":"WXPVOL_EN.iso","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b57992ea-5bb3-05b2-38dc-58c2856c04b0","$type":"VDI"},"OpaqueRef:b4a1573f-c235-8acd-4625-dfbcb2beb523":{"uuid":"39641ed1-36ea-4701-be3b-699c8db0d73f","name_label":"ceph","name_description":"","allowed_operations":["forget","generate_config","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:0e97a94e-d7ad-bda8-e838-0d7a6df51c12"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"8388608","type":"user","sharable":false,"read_only":false,"other_config":{"content_id":"b0e3e342-3a46-ba6a-41a4-f6527e9308e0"},"storage_lock":false,"location":"39641ed1-36ea-4701-be3b-699c8db0d73f","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vhd-parent":"09c5b648-599c-48e6-a28c-d58274885731","vdi_type":"vhd","vmhint":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf"},"is_a_snapshot":true,"snapshot_of":"OpaqueRef:1f7f9828-f4e7-41dd-20e6-3bf57c559a78","snapshots":[],"snapshot_time":"2014-01-02T11:01:57.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b4a1573f-c235-8acd-4625-dfbcb2beb523","$type":"VDI"},"OpaqueRef:b06a9d3f-5132-e58f-25c4-ef94d5b38986":{"uuid":"a62f7e82-510d-40d7-acba-04b51ddef6a9","name_label":"XOA 0","name_description":"Created by template provisioner","allowed_operations":[],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:df9a34c9-aa6e-54d4-4993-25ec255b01b8"],"crash_dumps":[],"virtual_size":"8589934592","physical_utilisation":"8615100416","type":"system","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"a62f7e82-510d-40d7-acba-04b51ddef6a9","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"host_OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692":"RW","import_task":"OpaqueRef:9a3d9eed-88c7-2a4a-c836-ebcd14d8c41d","vdi_type":"vhd","vmhint":"f18c19f8-daad-5c5e-08a9-e5e47306a34a"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b06a9d3f-5132-e58f-25c4-ef94d5b38986","$type":"VDI"},"OpaqueRef:a4dd8a73-5393-81ce-abce-fc1502490a6d":{"uuid":"09c5b648-599c-48e6-a28c-d58274885731","name_label":"base copy","name_description":"","allowed_operations":["forget","generate_config","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":[],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"1694498816","type":"user","sharable":false,"read_only":true,"other_config":{},"storage_lock":false,"location":"09c5b648-599c-48e6-a28c-d58274885731","managed":false,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vhd-blocks":"eJzFkgEKgCAMRY06+G7mjuIN7ADhL3VCBpJl5oM5hmxPhoBRHo2Ag6CRk2q7HWFJkcq51rUA1NRf8tfOS35u9L8F5/2bEX6WnKAhfi1uH+5XP4XMPzpzP0uOC+j1Dir6483ayXvHV39+ftqwhHPaAaGCbqQ=","vdi_type":"vhd","vmhint":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a4dd8a73-5393-81ce-abce-fc1502490a6d","$type":"VDI"},"OpaqueRef:83331526-8bd8-9644-0a7d-9f645f5fcd70":{"uuid":"118cfce9-4f19-42a6-885a-aa8b6bde1e53","name_label":"HVM","name_description":"","allowed_operations":["clone","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:b75f0abc-9706-16b6-4e14-16e8202a32a2"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"user","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"118cfce9-4f19-42a6-885a-aa8b6bde1e53","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"host_OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692":"RW","vmhint":"OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386","vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:83331526-8bd8-9644-0a7d-9f645f5fcd70","$type":"VDI"},"OpaqueRef:693bef17-aa19-63f8-3775-7d3b2dbce9d6":{"uuid":"366bdbd5-eea3-41c8-a3e1-133b714a7fe7","name_label":"ceph","name_description":"","allowed_operations":["clone","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:02ed17b8-6c41-9ac4-56f0-eb66ebcaa402"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"user","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"366bdbd5-eea3-41c8-a3e1-133b714a7fe7","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"host_OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692":"RW","vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:693bef17-aa19-63f8-3775-7d3b2dbce9d6","$type":"VDI"},"OpaqueRef:67618138-57df-e90a-74c6-402ad62d657b":{"uuid":"e68f21af-4824-48d4-987a-b056470bfa79","name_label":"base copy","name_description":"","allowed_operations":["forget","generate_config","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":[],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"1354760192","type":"user","sharable":false,"read_only":true,"other_config":{},"storage_lock":false,"location":"e68f21af-4824-48d4-987a-b056470bfa79","managed":false,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vhd-blocks":"eJzFklsKgCAQRSdoIS317kyX4g7ssw/JfPYQJLO0AzKMMnN8CZrIwrSDdMDmqz4I61oqMyQIdCXNS4mdautz/tJ+0c9f+mvhJFxk9rrxh5+7uD/00teP4DfnNz8LZIfq6oeLvKPzTHL/aLUPZOf9ytzIewc+6jM8LRh92Qb9s15J","vdi_type":"vhd"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:67618138-57df-e90a-74c6-402ad62d657b","$type":"VDI"},"OpaqueRef:5f1d5117-1033-b12a-92a8-99f206c9dbba":{"uuid":"ea61008c-9133-428a-abdd-6fdd6dac8f83","name_label":"Debian PV 0","name_description":"Created by template provisioner","allowed_operations":["clone","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:f3dcf37c-62bd-ee82-32d9-c4467bd57354"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"system","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"ea61008c-9133-428a-abdd-6fdd6dac8f83","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vdi_type":"vhd","vmhint":"e87f47c3-0057-69a2-72c8-6a5df168af43"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5f1d5117-1033-b12a-92a8-99f206c9dbba","$type":"VDI"},"OpaqueRef:42db42db-f79a-252f-aa2f-81e38e041853":{"uuid":"ac5012e6-f602-4a46-b4d6-ee991960a4f8","name_label":"debian-7.1.0-amd64-netinst.iso","name_description":"","allowed_operations":["forget","destroy","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047","VBDs":[],"crash_dumps":[],"virtual_size":"232783872","physical_utilisation":"232783872","type":"user","sharable":false,"read_only":true,"other_config":{"content_id":"1d48bd16-d908-9d89-dd61-5500c6da826a"},"storage_lock":false,"location":"debian-7.1.0-amd64-netinst.iso","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:42db42db-f79a-252f-aa2f-81e38e041853","$type":"VDI"},"OpaqueRef:287084c1-241a-58df-929a-cbe2e7454a56":{"uuid":"5b4b027f-2002-438d-8bda-81bbf7f7149f","name_label":"kernel 0","name_description":"Created by template provisioner","allowed_operations":["forget","generate_config","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":[],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"system","sharable":false,"read_only":false,"other_config":{"content_id":"372ce8b3-82ad-49eb-f113-7d0ab1c518f1"},"storage_lock":false,"location":"5b4b027f-2002-438d-8bda-81bbf7f7149f","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vdi_type":"vhd","vmhint":"a440ca26-9ae2-6b86-f795-d5269b7af63d"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":[],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:287084c1-241a-58df-929a-cbe2e7454a56","$type":"VDI"},"OpaqueRef:1f7f9828-f4e7-41dd-20e6-3bf57c559a78":{"uuid":"a3689c80-48b1-4423-ae53-b78ae51ed3d9","name_label":"ceph","name_description":"","allowed_operations":["clone","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"21525168128","type":"user","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"a3689c80-48b1-4423-ae53-b78ae51ed3d9","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"host_OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692":"RW","vhd-parent":"09c5b648-599c-48e6-a28c-d58274885731","vdi_type":"vhd","vmhint":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf"},"is_a_snapshot":false,"snapshot_of":"OpaqueRef:NULL","snapshots":["OpaqueRef:b4a1573f-c235-8acd-4625-dfbcb2beb523"],"snapshot_time":"1969-12-31T23:00:00.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1f7f9828-f4e7-41dd-20e6-3bf57c559a78","$type":"VDI"},"OpaqueRef:098a2155-605b-241e-f775-a05c2133874e":{"uuid":"370dd841-f147-4644-abba-5ff39e9ccd1c","name_label":"ceph","name_description":"","allowed_operations":["forget","generate_config","update","resize","destroy","clone","copy","snapshot"],"current_operations":{},"SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","VBDs":["OpaqueRef:2aabb82d-fc1e-48db-6d2e-689e6619b310"],"crash_dumps":[],"virtual_size":"21474836480","physical_utilisation":"8388608","type":"user","sharable":false,"read_only":false,"other_config":{},"storage_lock":false,"location":"370dd841-f147-4644-abba-5ff39e9ccd1c","managed":true,"missing":false,"parent":"OpaqueRef:NULL","xenstore_data":{},"sm_config":{"vhd-parent":"d02c97be-3cc5-4d77-bcce-fe75df43a2ee","vdi_type":"vhd"},"is_a_snapshot":true,"snapshot_of":"OpaqueRef:f7d900f9-a4fe-9a3e-ead8-28db301d26e8","snapshots":[],"snapshot_time":"2013-11-13T14:22:47.000Z","tags":[],"allow_caching":false,"on_boot":"persist","metadata_of_pool":"OpaqueRef:NULL","metadata_latest":false,"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:098a2155-605b-241e-f775-a05c2133874e","$type":"VDI"},"OpaqueRef:f3dcf37c-62bd-ee82-32d9-c4467bd57354":{"uuid":"8454c022-70a7-003d-b068-2078729405fe","allowed_operations":["pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb","VDI":"OpaqueRef:5f1d5117-1033-b12a-92a8-99f206c9dbba","device":"xvda","userdevice":"0","bootable":true,"mode":"RW","type":"Disk","unpluggable":false,"storage_lock":false,"empty":false,"other_config":{"owner":""},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:586f01a9-ef2e-8a09-7404-643de35e6ca9","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f3dcf37c-62bd-ee82-32d9-c4467bd57354","$type":"VBD"},"OpaqueRef:df9a34c9-aa6e-54d4-4993-25ec255b01b8":{"uuid":"5c4d3e53-1229-8f47-ff34-9fe20882bcd1","allowed_operations":["pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b","VDI":"OpaqueRef:b06a9d3f-5132-e58f-25c4-ef94d5b38986","device":"xvda","userdevice":"0","bootable":true,"mode":"RW","type":"Disk","unpluggable":false,"storage_lock":false,"empty":false,"other_config":{"owner":""},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:cb50d35f-a7e2-3e1d-3052-951cd24b261a","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df9a34c9-aa6e-54d4-4993-25ec255b01b8","$type":"VBD"},"OpaqueRef:ddad92d6-e01f-f86c-d907-eceba775cd45":{"uuid":"5ed36ca7-271a-2e0c-72ea-f0b2687d8145","allowed_operations":["insert","pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":true,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:ecfaa02e-4335-3aca-9bc4-607f5e50572d","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ddad92d6-e01f-f86c-d907-eceba775cd45","$type":"VBD"},"OpaqueRef:dbb53525-e1a3-741b-4924-9944b845bc0c":{"uuid":"69ec0bc6-d06c-ddb9-ff6d-47bba49496e2","allowed_operations":["insert","pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":true,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:64505d99-ac8c-dbcb-1fc6-70f9b5b92547","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dbb53525-e1a3-741b-4924-9944b845bc0c","$type":"VBD"},"OpaqueRef:cbe5ad31-bf57-7096-029b-53d573f83fed":{"uuid":"ad57e344-8195-0c9c-d43f-29d4feffd2e6","allowed_operations":["insert","pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":true,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:b8883f8d-422f-213e-22dd-176a53d55a36","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cbe5ad31-bf57-7096-029b-53d573f83fed","$type":"VBD"},"OpaqueRef:b75f0abc-9706-16b6-4e14-16e8202a32a2":{"uuid":"762df6c0-c283-25e0-2c2b-b40d32c8643c","allowed_operations":["pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386","VDI":"OpaqueRef:83331526-8bd8-9644-0a7d-9f645f5fcd70","device":"hda","userdevice":"0","bootable":true,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:90eb0e69-b118-94c0-8917-3ad611daf4ce","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b75f0abc-9706-16b6-4e14-16e8202a32a2","$type":"VBD"},"OpaqueRef:af6082a2-bad2-5898-f44e-6f25f22e22ba":{"uuid":"947541b2-c8b6-21b2-5a96-0df94c50472f","allowed_operations":["insert","pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":false,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:319e9756-a69b-7672-967f-8d4f5dcf0837","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:af6082a2-bad2-5898-f44e-6f25f22e22ba","$type":"VBD"},"OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d":{"uuid":"edfaa244-1bd3-9691-eb14-a5c3b07679ba","allowed_operations":["pause","unpause","attach","unplug_force","unplug"],"current_operations":{},"VM":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf","VDI":"OpaqueRef:1f7f9828-f4e7-41dd-20e6-3bf57c559a78","device":"hda","userdevice":"0","bootable":false,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:d21c2685-f3dc-d172-b007-3d9fb16e378b","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d","$type":"VBD"},"OpaqueRef:9c79f0d5-5980-6f28-0240-6cdb42b31876":{"uuid":"d51e4fd8-8678-9ec3-ecba-157466353c0e","allowed_operations":["attach"],"current_operations":{},"VM":"OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861","VDI":"OpaqueRef:f7d900f9-a4fe-9a3e-ead8-28db301d26e8","device":"hda","userdevice":"0","bootable":true,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:8d6419c1-f563-824c-874a-2d69b0c8bb7f","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9c79f0d5-5980-6f28-0240-6cdb42b31876","$type":"VBD"},"OpaqueRef:92bd7132-d71b-6632-a9fb-05ca21eb7430":{"uuid":"a2f07845-0f5d-a7ad-9f7b-e9191a151df3","allowed_operations":["insert","pause","unpause","plug","attach"],"current_operations":{},"VM":"OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b","VDI":"OpaqueRef:NULL","device":"","userdevice":"3","bootable":false,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:97a8fc62-f1e3-b3a4-8485-125ad7cc61cf","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:92bd7132-d71b-6632-a9fb-05ca21eb7430","$type":"VBD"},"OpaqueRef:8d8f3b85-e00d-1dfa-963a-4a8f0cdc04b5":{"uuid":"4174601a-98f1-d4ae-7679-e20c8e968d8b","allowed_operations":["insert","pause","unpause","plug","attach"],"current_operations":{},"VM":"OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb","VDI":"OpaqueRef:NULL","device":"xvdd","userdevice":"3","bootable":false,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:126dff34-4d0e-2a91-3e66-ed5744c332f0","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8d8f3b85-e00d-1dfa-963a-4a8f0cdc04b5","$type":"VBD"},"OpaqueRef:6d56b856-070d-2ade-766b-59fb82506ffc":{"uuid":"91b2c1cb-0b10-a939-0c9c-04af7af7ad6f","allowed_operations":["insert","attach"],"current_operations":{},"VM":"OpaqueRef:a247a02f-8909-5044-64a0-82460b25e740","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":true,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:3f1f9703-5717-41f7-37ba-b4f17795799d","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d56b856-070d-2ade-766b-59fb82506ffc","$type":"VBD"},"OpaqueRef:65c3b9df-5b63-4f73-067d-34540eb89f56":{"uuid":"63a1aadb-7ec7-e8db-6cdc-4b30a2051fe5","allowed_operations":["insert","attach"],"current_operations":{},"VM":"OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":false,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:e645f8d5-8a22-8f23-8618-7eb5bb081e5e","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:65c3b9df-5b63-4f73-067d-34540eb89f56","$type":"VBD"},"OpaqueRef:5733f2ad-687f-11e0-ade4-a468fb652332":{"uuid":"d3b792b0-3adf-c10c-4fec-70a0ca924299","allowed_operations":["insert","pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":true,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:f52b1583-62ee-fb81-16ab-fc4c5a4a000a","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5733f2ad-687f-11e0-ade4-a468fb652332","$type":"VBD"},"OpaqueRef:4f5fce42-2516-ffd9-ecad-da71f8d83631":{"uuid":"f33ffcac-f0fb-2fa7-c012-cfe10f99bd84","allowed_operations":["attach"],"current_operations":{},"VM":"OpaqueRef:d4fa8fba-ec86-5928-a1bb-dd78b6fb5944","VDI":"OpaqueRef:c2483b13-5a77-c772-142b-5a9a07b014a2","device":"","userdevice":"0","bootable":true,"mode":"RW","type":"Disk","unpluggable":false,"storage_lock":false,"empty":false,"other_config":{"owner":""},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:88db3914-a29c-82be-1dd2-705c891d2315","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f5fce42-2516-ffd9-ecad-da71f8d83631","$type":"VBD"},"OpaqueRef:4ca79a63-da5f-03c6-a9e3-1822331a18e1":{"uuid":"89c917a2-6b36-4702-49da-3c8b205af7d1","allowed_operations":["pause","unpause","attach","unplug_force","unplug"],"current_operations":{},"VM":"OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1","VDI":"OpaqueRef:c4aa5d87-4115-c359-9cdf-c16fbf56cf2c","device":"hda","userdevice":"0","bootable":false,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:2ef46a91-6993-6514-b010-6f26251a4a07","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4ca79a63-da5f-03c6-a9e3-1822331a18e1","$type":"VBD"},"OpaqueRef:30c40dc7-8c3d-45be-2f6b-f9ad5b9ba897":{"uuid":"166d5f4d-f500-c0af-b517-5378f8379eaa","allowed_operations":["insert","attach"],"current_operations":{},"VM":"OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":true,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:1458700f-1e79-a5b6-8048-6cff6dc57f40","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:30c40dc7-8c3d-45be-2f6b-f9ad5b9ba897","$type":"VBD"},"OpaqueRef:3026bd5a-3bae-2b3f-9b68-4a18a3208e51":{"uuid":"872e59d9-e1af-21de-1327-ad9fc186e395","allowed_operations":["insert","attach"],"current_operations":{},"VM":"OpaqueRef:d4fa8fba-ec86-5928-a1bb-dd78b6fb5944","VDI":"OpaqueRef:NULL","device":"","userdevice":"3","bootable":false,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:bb09c14b-58e3-e6ab-25d4-762b4cc9c3e0","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3026bd5a-3bae-2b3f-9b68-4a18a3208e51","$type":"VBD"},"OpaqueRef:2bcdb877-1b69-a94e-b391-25f9533c3d42":{"uuid":"2efcb8e2-79df-81e1-019a-cc1df148a99c","allowed_operations":["insert","attach"],"current_operations":{},"VM":"OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":false,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:2f330813-5615-da99-2de1-d49b2793b800","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2bcdb877-1b69-a94e-b391-25f9533c3d42","$type":"VBD"},"OpaqueRef:2aabb82d-fc1e-48db-6d2e-689e6619b310":{"uuid":"dbfcb01c-7f98-ed42-646e-6f25afe28201","allowed_operations":["attach"],"current_operations":{},"VM":"OpaqueRef:33ab2e29-f914-aae1-6755-0f5e62388f43","VDI":"OpaqueRef:098a2155-605b-241e-f775-a05c2133874e","device":"hda","userdevice":"0","bootable":true,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:d295f23f-f730-644a-958b-4119c2eed11f","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2aabb82d-fc1e-48db-6d2e-689e6619b310","$type":"VBD"},"OpaqueRef:267ec28d-37fd-5654-cfc9-df4727d2840d":{"uuid":"856c9fa3-293d-766e-5d58-02c43c8f3aac","allowed_operations":["insert","pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1","VDI":"OpaqueRef:NULL","device":"hdd","userdevice":"3","bootable":true,"mode":"RO","type":"CD","unpluggable":true,"storage_lock":false,"empty":true,"other_config":{},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:36ac4bd6-69a1-1f81-6029-89e0159c7f03","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:267ec28d-37fd-5654-cfc9-df4727d2840d","$type":"VBD"},"OpaqueRef:1bd20244-01a0-fec3-eb00-79a453a56446":{"uuid":"7aaf1310-6f79-abcf-d36f-da8bd86ba6fa","allowed_operations":["pause","unpause","attach","unplug_force","unplug"],"current_operations":{},"VM":"OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620","VDI":"OpaqueRef:f26d2af5-b529-4d16-21d1-a56965e7bfb1","device":"hda","userdevice":"0","bootable":false,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:35e39af9-b55e-7f2b-ed0d-bb4c950bb3bb","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1bd20244-01a0-fec3-eb00-79a453a56446","$type":"VBD"},"OpaqueRef:182e2fec-67c3-eacb-b2f9-c493add21d65":{"uuid":"405c41a9-b830-99ea-ecee-dfdf8cf1d809","allowed_operations":["attach"],"current_operations":{},"VM":"OpaqueRef:a247a02f-8909-5044-64a0-82460b25e740","VDI":"OpaqueRef:e0eb5eb1-a485-fcfc-071e-fafa17f9ac48","device":"hda","userdevice":"0","bootable":false,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:e3eee9ae-28ee-bf26-6908-f5c3e0db74e2","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:182e2fec-67c3-eacb-b2f9-c493add21d65","$type":"VBD"},"OpaqueRef:114cbf4c-64da-2d64-472e-9aee8e81b71b":{"uuid":"ed4f8f67-3e51-a46a-422a-be231e931f0b","allowed_operations":["pause","unpause","attach"],"current_operations":{},"VM":"OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d","VDI":"OpaqueRef:b5c202d8-eada-ee27-9a5a-7dd6a58a1d84","device":"hda","userdevice":"0","bootable":false,"mode":"RW","type":"Disk","unpluggable":false,"storage_lock":false,"empty":false,"other_config":{"owner":""},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:cd4d9e4a-f68d-7c42-57be-869cb6d2bbc1","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:114cbf4c-64da-2d64-472e-9aee8e81b71b","$type":"VBD"},"OpaqueRef:10624386-01a5-2bbd-583a-af3dfdd78785":{"uuid":"703b4a2b-ade9-1fa6-16ce-1cef4cfe0f02","allowed_operations":["pause","unpause","plug","attach"],"current_operations":{},"VM":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed","VDI":"OpaqueRef:c2483b13-5a77-c772-142b-5a9a07b014a2","device":"xvda","userdevice":"0","bootable":false,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:8a898094-991d-3ac0-6d3b-c52ad590356f","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:10624386-01a5-2bbd-583a-af3dfdd78785","$type":"VBD"},"OpaqueRef:0e97a94e-d7ad-bda8-e838-0d7a6df51c12":{"uuid":"2ff360e5-f63c-a48b-e8f0-5149ee298cc8","allowed_operations":["attach"],"current_operations":{},"VM":"OpaqueRef:f0b56a44-fcf5-c893-0957-40dfb86174ab","VDI":"OpaqueRef:b4a1573f-c235-8acd-4625-dfbcb2beb523","device":"hda","userdevice":"0","bootable":false,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":false,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:eb0f967c-0770-7ec9-c730-dd0cc1898652","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e97a94e-d7ad-bda8-e838-0d7a6df51c12","$type":"VBD"},"OpaqueRef:02ed17b8-6c41-9ac4-56f0-eb66ebcaa402":{"uuid":"d3151cfc-47ce-cba1-bd81-8fb81f4391bb","allowed_operations":["pause","unpause","attach","unplug_force","unplug"],"current_operations":{},"VM":"OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64","VDI":"OpaqueRef:693bef17-aa19-63f8-3775-7d3b2dbce9d6","device":"hda","userdevice":"0","bootable":false,"mode":"RW","type":"Disk","unpluggable":true,"storage_lock":false,"empty":false,"other_config":{"owner":"true"},"currently_attached":true,"status_code":"0","status_detail":"","runtime_properties":{},"qos_algorithm_type":"","qos_algorithm_params":{},"qos_supported_algorithms":[],"metrics":"OpaqueRef:dad64b20-f48a-41b6-ffb8-5f3cd365c881","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:02ed17b8-6c41-9ac4-56f0-eb66ebcaa402","$type":"VBD"},"OpaqueRef:ff32de74-138c-9d80-ab58-c631d2aa0e71":{"uuid":"719283cf-cb1b-9d35-9ddf-c2f0e9145315","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","device_config":{"port":"3260","target":"192.168.0.100","SCSIid":"3600144f0d43d7eb7a10c523192cf0001","targetIQN":"iqn.1986-03.com.sun:02:ba2ab54c-2d14-eb74-d6f9-ef7c4f28ff1e"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed","iscsi_sessions":"1"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ff32de74-138c-9d80-ab58-c631d2aa0e71","$type":"PBD"},"OpaqueRef:f0f98779-5cf8-cabc-edc3-631a2d63d89c":{"uuid":"d7402dda-664e-cd1c-8859-a399a922fa8c","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","SR":"OpaqueRef:31be9b5e-882a-a8ae-0edf-bf8942b49b5a","device_config":{"location":"/dev/xapi/cd"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f0f98779-5cf8-cabc-edc3-631a2d63d89c","$type":"PBD"},"OpaqueRef:b70f8e06-07a8-a5e7-2856-f221c822e9b2":{"uuid":"72be88f3-1ef6-0b8c-d296-474e4b1c6380","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","SR":"OpaqueRef:557155b2-f092-3417-f509-7ee35b1d42da","device_config":{"location":"/opt/xensource/packages/iso","legacy_mode":"true"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b70f8e06-07a8-a5e7-2856-f221c822e9b2","$type":"PBD"},"OpaqueRef:b641552a-8c92-71b3-c0a2-e4dd3d04c215":{"uuid":"8d7c3481-a579-1ac6-c7f5-1eb300f48c42","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","SR":"OpaqueRef:7c88a8c6-fc48-8836-28fa-212f67c42d2f","device_config":{"device":"/dev/disk/by-id/scsi-SATA_INTEL_SSDSC2CT0BTMP301605F8060AGN-part3"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b641552a-8c92-71b3-c0a2-e4dd3d04c215","$type":"PBD"},"OpaqueRef:992460b7-13f0-a91e-450d-a625962f67cd":{"uuid":"08863c80-1aa3-8f10-8d30-eb79f781f5c1","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","SR":"OpaqueRef:0815a82c-7bad-bbb1-520f-c9cfe5befde3","device_config":{"location":"/dev/xapi/cd"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:992460b7-13f0-a91e-450d-a625962f67cd","$type":"PBD"},"OpaqueRef:93320534-824f-850a-64a2-bcbfdc2e0927":{"uuid":"4a44a36b-f87b-04da-67c1-150d640fa34f","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","SR":"OpaqueRef:ec76bd6a-f2c0-636d-ca72-de8fb42d6eea","device_config":{"location":"/dev/xapi/block"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93320534-824f-850a-64a2-bcbfdc2e0927","$type":"PBD"},"OpaqueRef:66b06c7a-b59a-060e-e5f0-1e645b4b065b":{"uuid":"c28a9be1-b9fd-6c7e-7acd-9e9a59299090","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","SR":"OpaqueRef:ca1f4e15-4591-d47a-1805-f6d866e31733","device_config":{"location":"/dev/xapi/block"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:66b06c7a-b59a-060e-e5f0-1e645b4b065b","$type":"PBD"},"OpaqueRef:537c4f6f-7620-be3f-9999-697443991b2c":{"uuid":"e6d13fc9-722d-bf8a-7c1b-168c7861c477","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","SR":"OpaqueRef:804177dc-072c-d4ca-0f89-b97befb25f21","device_config":{"device":"/dev/disk/by-id/scsi-SATA_INTEL_SSDSC2CT0BTMP307203EJ060AGN-part3"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:537c4f6f-7620-be3f-9999-697443991b2c","$type":"PBD"},"OpaqueRef:3ecc1b3e-78cb-e39e-1618-b4fd5e268df0":{"uuid":"8ad78762-cb66-52dc-b119-bb3f2dc97c9a","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","SR":"OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047","device_config":{"type":"nfs_iso","location":"192.168.1.109:/media/nfs"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3ecc1b3e-78cb-e39e-1618-b4fd5e268df0","$type":"PBD"},"OpaqueRef:200674ae-d9ab-2caa-a283-4fa3d14592fd":{"uuid":"ee83d368-d74b-c500-d241-aef521ad0bd6","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","SR":"OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee","device_config":{"port":"3260","target":"192.168.0.100","SCSIid":"3600144f0d43d7eb7a10c523192cf0001","targetIQN":"iqn.1986-03.com.sun:02:ba2ab54c-2d14-eb74-d6f9-ef7c4f28ff1e"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675","iscsi_sessions":"1"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:200674ae-d9ab-2caa-a283-4fa3d14592fd","$type":"PBD"},"OpaqueRef:12e1d8fa-af07-ad26-91f0-9e8f00068a3e":{"uuid":"a985247c-93b9-d420-f5c8-ac1359254354","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","SR":"OpaqueRef:557155b2-f092-3417-f509-7ee35b1d42da","device_config":{"location":"/opt/xensource/packages/iso","legacy_mode":"true"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:12e1d8fa-af07-ad26-91f0-9e8f00068a3e","$type":"PBD"},"OpaqueRef:0c1d3862-5a38-e4cc-4a46-d8358a622461":{"uuid":"8be363b2-86ea-0c8b-ba41-872eb1e93bef","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","SR":"OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047","device_config":{"type":"nfs_iso","location":"192.168.1.109:/media/nfs"},"currently_attached":true,"other_config":{"storage_driver_domain":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed"},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0c1d3862-5a38-e4cc-4a46-d8358a622461","$type":"PBD"},"OpaqueRef:fc87099d-19a0-19ae-2791-33b27bff86c6":{"uuid":"58eb141e-a3ae-23a5-18a0-752c33b43438","protocol":"rfb","location":"https://192.168.1.2/console?ref=OpaqueRef:fc87099d-19a0-19ae-2791-33b27bff86c6","VM":"OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fc87099d-19a0-19ae-2791-33b27bff86c6","$type":"console"},"OpaqueRef:fae5dd13-3a86-52c5-2edf-f4763a6d6152":{"uuid":"f3036ffd-e161-9fd6-fc62-0061712e697e","protocol":"vt100","location":"https://192.168.1.2/console?ref=OpaqueRef:fae5dd13-3a86-52c5-2edf-f4763a6d6152","VM":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fae5dd13-3a86-52c5-2edf-f4763a6d6152","$type":"console"},"OpaqueRef:f866fe81-3519-7229-be56-fcd569c3f258":{"uuid":"b7fbf40e-54fb-b62b-6dc5-549d15f77fd5","protocol":"vt100","location":"https://192.168.1.116/console?uuid=b7fbf40e-54fb-b62b-6dc5-549d15f77fd5","VM":"OpaqueRef:f6c4aaec-12ca-18d4-d530-51c0c73cbd98","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f866fe81-3519-7229-be56-fcd569c3f258","$type":"console"},"OpaqueRef:e89a4629-10c5-acaf-e909-306836062bc5":{"uuid":"ae83da48-90b8-d82a-ea5c-2785bf794ac6","protocol":"rfb","location":"https://192.168.1.116/console?uuid=ae83da48-90b8-d82a-ea5c-2785bf794ac6","VM":"OpaqueRef:409875f4-826f-3571-8e05-e2dfd215311c","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e89a4629-10c5-acaf-e909-306836062bc5","$type":"console"},"OpaqueRef:e7a986fc-bb34-55ed-f15d-bb87caf7fb78":{"uuid":"ba8872ad-8504-bde5-9c8c-29c955cdef12","protocol":"vt100","location":"https://192.168.1.1/console?uuid=ba8872ad-8504-bde5-9c8c-29c955cdef12","VM":"OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e7a986fc-bb34-55ed-f15d-bb87caf7fb78","$type":"console"},"OpaqueRef:e5d52697-5149-e523-ba39-3c5502020c4a":{"uuid":"817a80e7-1fe9-3019-bf0b-6b45b3978b7d","protocol":"rfb","location":"https://192.168.1.116/console?uuid=817a80e7-1fe9-3019-bf0b-6b45b3978b7d","VM":"OpaqueRef:f6c4aaec-12ca-18d4-d530-51c0c73cbd98","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e5d52697-5149-e523-ba39-3c5502020c4a","$type":"console"},"OpaqueRef:ddbf5417-0aef-509e-3f58-33afe1f34a41":{"uuid":"9ad249c0-2544-6689-2d07-4bc952e281d5","protocol":"rfb","location":"https://192.168.1.2/console?ref=OpaqueRef:ddbf5417-0aef-509e-3f58-33afe1f34a41","VM":"OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ddbf5417-0aef-509e-3f58-33afe1f34a41","$type":"console"},"OpaqueRef:c9e4e125-b855-eeec-2f48-a540fba73ba0":{"uuid":"ad5f3f51-ccc9-cce7-6b95-ce4817bcc13f","protocol":"rfb","location":"https://192.168.1.1/console?uuid=ad5f3f51-ccc9-cce7-6b95-ce4817bcc13f","VM":"OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c9e4e125-b855-eeec-2f48-a540fba73ba0","$type":"console"},"OpaqueRef:c96463af-670f-cc36-09f5-c32b5d9101c8":{"uuid":"452f6003-2687-1ac3-b5d2-bf76a8196212","protocol":"rfb","location":"https://192.168.1.1/console?ref=OpaqueRef:c96463af-670f-cc36-09f5-c32b5d9101c8","VM":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c96463af-670f-cc36-09f5-c32b5d9101c8","$type":"console"},"OpaqueRef:c7c926ae-45fa-5b49-7ad0-7d32972a4065":{"uuid":"283366b1-ec19-4ea7-804d-c0ae53ad7ed0","protocol":"rfb","location":"https://192.168.1.2/console?uuid=283366b1-ec19-4ea7-804d-c0ae53ad7ed0","VM":"OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c7c926ae-45fa-5b49-7ad0-7d32972a4065","$type":"console"},"OpaqueRef:c69bacbe-4d11-b0a9-c079-9b580cf22bde":{"uuid":"2cdaecf7-4167-5b71-017f-1033d7c4110f","protocol":"rfb","location":"https://192.168.1.2/console?ref=OpaqueRef:c69bacbe-4d11-b0a9-c079-9b580cf22bde","VM":"OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c69bacbe-4d11-b0a9-c079-9b580cf22bde","$type":"console"},"OpaqueRef:a8807761-56dd-c5d7-5f4a-439c9978daca":{"uuid":"b7021a47-dade-e162-5108-4cc5973b39f3","protocol":"rfb","location":"https://192.168.1.1/console?uuid=b7021a47-dade-e162-5108-4cc5973b39f3","VM":"OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8807761-56dd-c5d7-5f4a-439c9978daca","$type":"console"},"OpaqueRef:93b9a9e8-ee26-5d0f-bdd9-53586a616349":{"uuid":"34550313-a293-1efe-100a-5ca4a4307838","protocol":"vt100","location":"https://192.168.1.1/console?ref=OpaqueRef:93b9a9e8-ee26-5d0f-bdd9-53586a616349","VM":"OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93b9a9e8-ee26-5d0f-bdd9-53586a616349","$type":"console"},"OpaqueRef:8ec5125f-facc-e687-a3b3-9221c7bd24e9":{"uuid":"03e79f44-ff09-fb0e-53df-a308612fc62c","protocol":"vt100","location":"https://192.168.1.2/console?uuid=03e79f44-ff09-fb0e-53df-a308612fc62c","VM":"OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8ec5125f-facc-e687-a3b3-9221c7bd24e9","$type":"console"},"OpaqueRef:69b8dbde-161c-b3fa-bd1a-3567e7efdbda":{"uuid":"b7f85b67-4b8a-0586-b279-6146da76642f","protocol":"rfb","location":"https://192.168.1.1/console?uuid=b7f85b67-4b8a-0586-b279-6146da76642f","VM":"OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:69b8dbde-161c-b3fa-bd1a-3567e7efdbda","$type":"console"},"OpaqueRef:4f4bb6d3-f516-2bec-0569-e5f29fcb5ccd":{"uuid":"cc5e91cf-dfe2-1262-cf59-5d39a010d6d2","protocol":"vt100","location":"https://192.168.1.116/console?uuid=cc5e91cf-dfe2-1262-cf59-5d39a010d6d2","VM":"OpaqueRef:a23284fa-71e8-33bc-2456-bf6c2332e31d","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f4bb6d3-f516-2bec-0569-e5f29fcb5ccd","$type":"console"},"OpaqueRef:4998c031-2261-a641-c883-823551890a18":{"uuid":"74df3fd3-738c-a11f-7b6c-8f43692fc44f","protocol":"rfb","location":"https://192.168.1.2/console?ref=OpaqueRef:4998c031-2261-a641-c883-823551890a18","VM":"OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4998c031-2261-a641-c883-823551890a18","$type":"console"},"OpaqueRef:429ab967-27b8-fe70-dc3b-3740218df3d8":{"uuid":"edc49509-e745-d405-7a1e-30b52adc1a5a","protocol":"rfb","location":"https://192.168.1.116/console?uuid=edc49509-e745-d405-7a1e-30b52adc1a5a","VM":"OpaqueRef:3e799e48-b48d-ab07-c6dd-b3c52344c061","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:429ab967-27b8-fe70-dc3b-3740218df3d8","$type":"console"},"OpaqueRef:3d8d625d-7bb8-c313-21b9-24b652880346":{"uuid":"328bf711-3dd6-caa6-7388-5f9247ee4623","protocol":"vt100","location":"https://192.168.1.116/console?uuid=328bf711-3dd6-caa6-7388-5f9247ee4623","VM":"OpaqueRef:3e799e48-b48d-ab07-c6dd-b3c52344c061","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3d8d625d-7bb8-c313-21b9-24b652880346","$type":"console"},"OpaqueRef:237a585b-9713-dc9b-5ca9-2eb959b3b810":{"uuid":"dc712f1c-382b-230d-df80-23aec3746794","protocol":"rfb","location":"https://192.168.1.116/console?uuid=dc712f1c-382b-230d-df80-23aec3746794","VM":"OpaqueRef:a23284fa-71e8-33bc-2456-bf6c2332e31d","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:237a585b-9713-dc9b-5ca9-2eb959b3b810","$type":"console"},"OpaqueRef:1b60146a-7936-03ae-6c08-d56263cf4fc2":{"uuid":"c0226116-8b38-2ccf-e53a-5e2fe64614ef","protocol":"rfb","location":"https://192.168.1.2/console?ref=OpaqueRef:1b60146a-7936-03ae-6c08-d56263cf4fc2","VM":"OpaqueRef:2e557da0-8ae2-4a45-9a46-cfacc92bf675","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1b60146a-7936-03ae-6c08-d56263cf4fc2","$type":"console"},"OpaqueRef:051afea0-385e-d81c-670a-f5a878b3a7b1":{"uuid":"e40591c9-c3f8-22e2-b62e-c78373badcf3","protocol":"rfb","location":"https://192.168.1.2/console?uuid=e40591c9-c3f8-22e2-b62e-c78373badcf3","VM":"OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:051afea0-385e-d81c-670a-f5a878b3a7b1","$type":"console"},"OpaqueRef:a242799a-03bf-b55e-ecde-ddfe902fa69e":{"uuid":"dd991e0e-0f17-e3b6-31db-ca5502e8d32d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2014-01-11T14:12:37.000Z","body":"VM 'ceph3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a242799a-03bf-b55e-ecde-ddfe902fa69e","$type":"message"},"OpaqueRef:6d7d33d4-1f70-90c2-30f0-7b18a73f333d":{"uuid":"73702aaf-97f5-aaba-9ef3-b85107b1f784","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2014-01-11T14:12:34.000Z","body":"VM 'Windows XP SP3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d7d33d4-1f70-90c2-30f0-7b18a73f333d","$type":"message"},"OpaqueRef:cb515b9a-ef8c-13d4-88ea-e0d3ee88d22a":{"uuid":"77751e34-e501-a22c-a11d-daf0e29c7bed","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2014-01-11T14:04:16.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cb515b9a-ef8c-13d4-88ea-e0d3ee88d22a","$type":"message"},"OpaqueRef:8efbe177-dc95-88ab-f9b0-cda357ecd071":{"uuid":"f9390808-7d50-4a2b-55de-800f1c775c4b","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2014-01-10T11:46:58.000Z","body":"VM 'Windows XP SP3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8efbe177-dc95-88ab-f9b0-cda357ecd071","$type":"message"},"OpaqueRef:6e9dba96-86f0-7fd4-d4b7-f6784062a4c1":{"uuid":"07b3568d-44c7-7b23-ac54-d98a2523b857","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2014-01-10T11:46:49.000Z","body":"VM 'Windows XP SP3' shutdown forcibly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6e9dba96-86f0-7fd4-d4b7-f6784062a4c1","$type":"message"},"OpaqueRef:ef875d62-179a-293d-b8d9-a3778ccb0d95":{"uuid":"f103f6e6-a80a-102a-b42c-069c59eb61c5","name":"VM_REBOOTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2014-01-10T11:46:35.000Z","body":"VM 'Windows XP SP3' rebooted cleanly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ef875d62-179a-293d-b8d9-a3778ccb0d95","$type":"message"},"OpaqueRef:5cec485b-e276-c45b-09cb-dd02bb1d00f3":{"uuid":"1b54da8f-0775-066e-4f93-6a60776d27ca","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2014-01-06T11:54:42.000Z","body":"VM 'ceph3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5cec485b-e276-c45b-09cb-dd02bb1d00f3","$type":"message"},"OpaqueRef:ff3b6df1-b761-0d75-e80e-4ef137eec9e6":{"uuid":"c9caf856-7890-34ff-a38b-cae0ae3ff791","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2014-01-06T11:54:31.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ff3b6df1-b761-0d75-e80e-4ef137eec9e6","$type":"message"},"OpaqueRef:82e543d5-f361-1f53-e953-7d5886efeb5e":{"uuid":"f5ec0e56-5042-79d8-2468-82cf572cab98","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2014-01-06T11:54:30.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:82e543d5-f361-1f53-e953-7d5886efeb5e","$type":"message"},"OpaqueRef:fdee2b24-5dcc-181a-d045-833dbeb1dfca":{"uuid":"7a67b230-7e67-3643-8c21-623f30c3b94b","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2014-01-06T11:54:11.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fdee2b24-5dcc-181a-d045-833dbeb1dfca","$type":"message"},"OpaqueRef:a5a5f15e-2df1-dc27-dc9d-d5dc8f4ff056":{"uuid":"5ebdf8fc-e430-f4e7-c2aa-5fb18933a749","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2014-01-06T08:08:52.000Z","body":"VM 'ceph2' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a5a5f15e-2df1-dc27-dc9d-d5dc8f4ff056","$type":"message"},"OpaqueRef:53a6de84-e70e-566e-dc7e-57a603d8cbba":{"uuid":"247867b2-7c7b-4d58-e351-cad1b5f703d3","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2014-01-06T08:08:51.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:53a6de84-e70e-566e-dc7e-57a603d8cbba","$type":"message"},"OpaqueRef:a8d94d7e-7a6e-0cc1-b7a0-8f18940410fd":{"uuid":"1a7abd0c-8cf1-3f82-341d-abe1d0198e03","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2014-01-06T08:08:50.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a8d94d7e-7a6e-0cc1-b7a0-8f18940410fd","$type":"message"},"OpaqueRef:16150297-6cf0-4b70-9571-3060ddbb373f":{"uuid":"3dec0572-69f8-140c-dffb-be52c711399d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2014-01-06T08:08:49.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:16150297-6cf0-4b70-9571-3060ddbb373f","$type":"message"},"OpaqueRef:d2f0ace2-e890-1fb0-493f-7c1b0981bab3":{"uuid":"cd530fab-5250-c89e-e328-a628048f3cb4","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2014-01-06T08:08:34.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d2f0ace2-e890-1fb0-493f-7c1b0981bab3","$type":"message"},"OpaqueRef:35585a79-caf7-6522-18ee-8d3e8459441d":{"uuid":"a4e45639-67ec-1564-7b1e-f9ff541865b3","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2014-01-06T08:08:32.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:35585a79-caf7-6522-18ee-8d3e8459441d","$type":"message"},"OpaqueRef:85e2bb86-f066-bf00-0236-fcb64107b84d":{"uuid":"1c64c848-65f7-7acb-1444-2afb5af4f9d5","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2014-01-06T08:08:29.000Z","body":"VM 'ceph2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:85e2bb86-f066-bf00-0236-fcb64107b84d","$type":"message"},"OpaqueRef:0e24bf46-21b2-c12a-283a-8bdd6e869200":{"uuid":"fdc5b3d0-2e0e-dc76-9179-b7cf314d62a1","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2014-01-06T08:08:21.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e24bf46-21b2-c12a-283a-8bdd6e869200","$type":"message"},"OpaqueRef:b6eb9766-0d75-52d1-5cdb-4bdac4ba961a":{"uuid":"371825bc-5601-6e07-88be-f8e532a6404e","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2014-01-05T13:29:13.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b6eb9766-0d75-52d1-5cdb-4bdac4ba961a","$type":"message"},"OpaqueRef:7541be22-a8a0-9dd8-cb62-96bea1998c30":{"uuid":"3ad87d7f-e0d7-d6f9-6be7-4bb9d5622b5a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2014-01-01T11:48:02.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7541be22-a8a0-9dd8-cb62-96bea1998c30","$type":"message"},"OpaqueRef:00652e1a-ba5c-4c42-0518-5492500b8417":{"uuid":"0faa5051-2a07-d614-658e-1f1a747c3aee","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2014-01-01T11:48:00.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:00652e1a-ba5c-4c42-0518-5492500b8417","$type":"message"},"OpaqueRef:664f8198-62d8-c5e7-0d05-7dd128f7e5e1":{"uuid":"13eaa56b-a18c-3e28-4cb6-5b73be081256","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2014-01-01T11:44:48.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:664f8198-62d8-c5e7-0d05-7dd128f7e5e1","$type":"message"},"OpaqueRef:1176a58d-25be-26f4-5769-223694fe4538":{"uuid":"c593e334-0008-3589-9d2f-6753418a81e3","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2014-01-01T11:44:47.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1176a58d-25be-26f4-5769-223694fe4538","$type":"message"},"OpaqueRef:68d1102f-eadc-e1f3-7949-3f62248c165c":{"uuid":"18f08120-afd8-33b2-7a09-fa5b21595e6d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-31T14:37:38.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:68d1102f-eadc-e1f3-7949-3f62248c165c","$type":"message"},"OpaqueRef:d6fdde6e-cebd-53b7-fdb8-448e20db55d2":{"uuid":"70bfef80-ef48-dd44-d358-88e7f4bf767e","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-12-31T14:37:37.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d6fdde6e-cebd-53b7-fdb8-448e20db55d2","$type":"message"},"OpaqueRef:93d2ac46-5786-dde0-c6b1-de1aed4b530a":{"uuid":"283d4f11-c894-318f-cc34-6eb034522fd6","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-12-31T14:37:35.000Z","body":"VM 'ceph2' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93d2ac46-5786-dde0-c6b1-de1aed4b530a","$type":"message"},"OpaqueRef:36049f35-b30c-8e78-a220-ed7105a75dd9":{"uuid":"3f7e27c2-cb7c-0ae5-8d38-90b5c5b4b475","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-12-31T14:37:14.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:36049f35-b30c-8e78-a220-ed7105a75dd9","$type":"message"},"OpaqueRef:974bef10-184a-c063-aa32-c318fd39e400":{"uuid":"bd6fd9a4-98a6-34f4-7ed6-222c55dd817b","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-31T14:37:14.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:974bef10-184a-c063-aa32-c318fd39e400","$type":"message"},"OpaqueRef:b8950a9b-b57a-1b09-c8fb-8c93505160ee":{"uuid":"f9f0b96c-c81d-a948-dbe6-88d466ebd277","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-12-31T14:37:11.000Z","body":"VM 'ceph2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b8950a9b-b57a-1b09-c8fb-8c93505160ee","$type":"message"},"OpaqueRef:e092c4e1-a211-204a-f773-49cc3a4611be":{"uuid":"4c39546b-58f9-96fd-a6f7-3278aa0e33bb","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-31T14:36:35.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e092c4e1-a211-204a-f773-49cc3a4611be","$type":"message"},"OpaqueRef:013a4a12-1981-fbc8-92ac-1fa45d2e9c9c":{"uuid":"972e750e-93f3-3e6c-ee5b-de26b9dc06eb","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-31T14:36:22.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:013a4a12-1981-fbc8-92ac-1fa45d2e9c9c","$type":"message"},"OpaqueRef:26bb008f-86d0-20fd-de83-640352dcad5c":{"uuid":"fb30ad8a-7628-0654-0d8e-a17de9fe8ea3","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-12-31T14:36:18.000Z","body":"VM 'ceph1' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:26bb008f-86d0-20fd-de83-640352dcad5c","$type":"message"},"OpaqueRef:e7209a31-b3a8-0b4a-316b-806e2e1d40a6":{"uuid":"a540fec2-2767-0b18-0fad-52ee4028b7e3","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-12-31T14:36:06.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e7209a31-b3a8-0b4a-316b-806e2e1d40a6","$type":"message"},"OpaqueRef:ba6bba4f-4263-0e1a-7e69-ca4d94cd8237":{"uuid":"eb2fa60d-80bc-9170-2a8e-a1ca8f130a2d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-12-31T14:35:34.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ba6bba4f-4263-0e1a-7e69-ca4d94cd8237","$type":"message"},"OpaqueRef:59710b16-f35f-9365-7aac-65cafb78ac69":{"uuid":"a314f8fc-845e-be19-ea82-72739d8ad75c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-12-31T14:35:31.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:59710b16-f35f-9365-7aac-65cafb78ac69","$type":"message"},"OpaqueRef:40d79193-662e-7d3c-15c9-b2f342c1c1a8":{"uuid":"8ac5e014-d604-e4d2-1157-eeedcd335bf4","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-12-31T14:35:30.000Z","body":"VM 'ceph2' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:40d79193-662e-7d3c-15c9-b2f342c1c1a8","$type":"message"},"OpaqueRef:a77fc714-b5b1-0c37-d006-0935506bb8cd":{"uuid":"2af76a10-7261-79b7-a047-9a3444d057f0","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-31T14:35:28.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a77fc714-b5b1-0c37-d006-0935506bb8cd","$type":"message"},"OpaqueRef:554ec983-e67a-fc8b-7d2a-00c55be5f266":{"uuid":"68ba53df-ea8c-bd19-8e45-9e61ce416e16","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-31T14:35:03.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:554ec983-e67a-fc8b-7d2a-00c55be5f266","$type":"message"},"OpaqueRef:38404a18-4c1b-0bf5-1d45-c47243bbc69d":{"uuid":"014b9949-850e-adb2-bb95-f188a0e46035","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-30T15:51:10.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:38404a18-4c1b-0bf5-1d45-c47243bbc69d","$type":"message"},"OpaqueRef:0f98e883-a4d5-0fd8-3aa3-92be69adc4e3":{"uuid":"623386b6-c2f4-fa45-af1b-3ea552abda06","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-30T15:48:56.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f98e883-a4d5-0fd8-3aa3-92be69adc4e3","$type":"message"},"OpaqueRef:b3e9ac53-f6b8-4c49-f096-57f680136477":{"uuid":"e188e306-f2be-5153-5f1c-26fb2dff27b4","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T16:05:40.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b3e9ac53-f6b8-4c49-f096-57f680136477","$type":"message"},"OpaqueRef:1aa65d64-a00b-4c0b-be07-95f6eec7fd87":{"uuid":"b25a2d91-0e32-a477-d2fe-641ba598c075","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T16:05:29.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1aa65d64-a00b-4c0b-be07-95f6eec7fd87","$type":"message"},"OpaqueRef:be431f8c-f39b-4a64-5fc2-de9744ced26a":{"uuid":"7bd150e8-e312-fb05-b47e-619953fe857c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T16:03:34.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:be431f8c-f39b-4a64-5fc2-de9744ced26a","$type":"message"},"OpaqueRef:0e571611-6194-6ce6-bae0-94bbe57576c6":{"uuid":"f6481879-a5fe-a14e-e90f-59a9d400baf4","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T16:02:29.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e571611-6194-6ce6-bae0-94bbe57576c6","$type":"message"},"OpaqueRef:114fdd8a-844c-6bb5-0855-e3427bc8f073":{"uuid":"9f265be9-6cf6-f0ed-0c46-6a3cb012b062","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T15:42:52.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:114fdd8a-844c-6bb5-0855-e3427bc8f073","$type":"message"},"OpaqueRef:a486606c-1c75-e1c3-56de-c6e1bc3df980":{"uuid":"e5066bb8-5f2d-1e25-af7f-ff49987fe9f8","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T15:26:26.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a486606c-1c75-e1c3-56de-c6e1bc3df980","$type":"message"},"OpaqueRef:b6975094-843e-a19a-6101-ee7953e40580":{"uuid":"bbc16aab-b142-264c-6bfa-2b940e21bf91","name":"VM_REBOOTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T15:25:52.000Z","body":"VM 'ceph3' rebooted cleanly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b6975094-843e-a19a-6101-ee7953e40580","$type":"message"},"OpaqueRef:f15d7d4c-32d1-45e1-5f6f-ddc68733bab6":{"uuid":"f433c84d-e186-1795-4bb9-6b0ecb69efe0","name":"VM_REBOOTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T15:24:13.000Z","body":"VM 'ceph3' rebooted cleanly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f15d7d4c-32d1-45e1-5f6f-ddc68733bab6","$type":"message"},"OpaqueRef:1b04b1a2-e8b2-df82-6618-0d0a741d8bbb":{"uuid":"bdafec3e-b8eb-fe11-368c-57682dcaaf1b","name":"VM_REBOOTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T15:22:23.000Z","body":"VM 'ceph3' rebooted cleanly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1b04b1a2-e8b2-df82-6618-0d0a741d8bbb","$type":"message"},"OpaqueRef:dcd41e75-47fc-5ae5-1d59-5176a7b76eaa":{"uuid":"72584f00-e3f6-fb2f-2ab7-40c4c9645d24","name":"VM_REBOOTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-28T15:16:48.000Z","body":"VM 'ceph3' rebooted cleanly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dcd41e75-47fc-5ae5-1d59-5176a7b76eaa","$type":"message"},"OpaqueRef:454f780d-8be7-3c36-c65c-e6680f03ea40":{"uuid":"03c0d3e8-1b19-1a71-3808-76d071fe4c5d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-12-27T12:04:19.000Z","body":"VM 'Windows XP SP3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:454f780d-8be7-3c36-c65c-e6680f03ea40","$type":"message"},"OpaqueRef:a55fef97-94f5-5195-468d-e5c55d6ae65d":{"uuid":"45fd3200-65ed-85a9-965c-efb9b3935832","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-27T08:49:35.000Z","body":"VM 'XOA' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a55fef97-94f5-5195-468d-e5c55d6ae65d","$type":"message"},"OpaqueRef:9d76bcc6-b056-c895-5ba0-ef50bfd8477d":{"uuid":"96dc8479-5330-4bd0-5ade-ef39cb35d559","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-12-19T14:19:00.000Z","body":"VM 'ceph4' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9d76bcc6-b056-c895-5ba0-ef50bfd8477d","$type":"message"},"OpaqueRef:71ed5eba-33c9-6deb-6dc2-ab670a6c968b":{"uuid":"6cc6bcc5-cd4a-1f54-1c42-871a3f8c73d1","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-12-19T14:18:56.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:71ed5eba-33c9-6deb-6dc2-ab670a6c968b","$type":"message"},"OpaqueRef:2e8b43eb-d246-3ecb-9d0d-f2d1458df6d6":{"uuid":"c9009b3d-2a9e-a996-8d8c-2089cd2789a7","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-12-19T14:18:50.000Z","body":"VM 'ceph2' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2e8b43eb-d246-3ecb-9d0d-f2d1458df6d6","$type":"message"},"OpaqueRef:578dadcf-a8d1-56b8-2cb1-5a35264eb836":{"uuid":"37e2e31d-1d0b-98eb-37df-18280ade143f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-12-19T14:18:47.000Z","body":"VM 'ceph1' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:578dadcf-a8d1-56b8-2cb1-5a35264eb836","$type":"message"},"OpaqueRef:a1fe184b-15c7-921f-c7fc-beb225dd25d2":{"uuid":"4a52582d-1eaa-9d5f-b8af-ce593f76114f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-19T11:45:54.000Z","body":"VM 'XOA' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a1fe184b-15c7-921f-c7fc-beb225dd25d2","$type":"message"},"OpaqueRef:3044dff6-52df-d8a3-6315-ee7c6b64b093":{"uuid":"27dadcd4-bf23-285a-2159-21c03a13a56d","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-19T10:55:28.000Z","body":"VM 'XOA' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3044dff6-52df-d8a3-6315-ee7c6b64b093","$type":"message"},"OpaqueRef:160ceced-7c8e-52de-d59f-bae952806871":{"uuid":"a4d8eb63-d573-4f09-356d-276a606e06d8","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-19T10:54:48.000Z","body":"VM 'XOA' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:160ceced-7c8e-52de-d59f-bae952806871","$type":"message"},"OpaqueRef:9a3c7156-5272-db4c-5603-e2b62ebb5315":{"uuid":"9ef5ef85-f110-49ec-fdde-d33ea941c18f","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-19T10:54:01.000Z","body":"VM 'XOA' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9a3c7156-5272-db4c-5603-e2b62ebb5315","$type":"message"},"OpaqueRef:1dd2768d-d744-f302-317c-71430265808a":{"uuid":"5c4be539-95b8-171e-23be-4f3181c2df86","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-19T10:53:34.000Z","body":"VM 'XOA' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1dd2768d-d744-f302-317c-71430265808a","$type":"message"},"OpaqueRef:ac6e7940-8f19-2d2a-de54-3e7f6c0e8623":{"uuid":"e690bc19-b2ef-bda8-396d-b1db92c7bff8","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-19T10:51:56.000Z","body":"VM 'XOA' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ac6e7940-8f19-2d2a-de54-3e7f6c0e8623","$type":"message"},"OpaqueRef:04c78483-8ad1-c50e-6c13-c12056967dea":{"uuid":"10d4f7b1-7d38-5fa7-8f64-44519ae32243","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-19T10:16:36.000Z","body":"VM 'XOA' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:04c78483-8ad1-c50e-6c13-c12056967dea","$type":"message"},"OpaqueRef:44e1af04-7c24-ee50-5967-30ce02b1f8f2":{"uuid":"7e5aa8fb-90f3-84ff-7eee-c192404d93f6","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-19T10:15:37.000Z","body":"VM 'XOA' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:44e1af04-7c24-ee50-5967-30ce02b1f8f2","$type":"message"},"OpaqueRef:338b61f5-6c5e-5876-bcd2-bf0c1b51e881":{"uuid":"3dd4515a-e95f-d701-a150-2b88137ffb4f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-12-14T10:32:30.000Z","body":"VM 'XOA' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:338b61f5-6c5e-5876-bcd2-bf0c1b51e881","$type":"message"},"OpaqueRef:d8f4adb6-feac-8af1-5cc5-7f78dee18f31":{"uuid":"9d214c17-b5c2-ffdc-0f80-8444561f3886","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-12-14T10:29:19.000Z","body":"VM 'Debian HVM' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d8f4adb6-feac-8af1-5cc5-7f78dee18f31","$type":"message"},"OpaqueRef:e927b46f-7529-186c-0af7-b80fae2955a4":{"uuid":"6b7a10ae-662f-d958-0374-883e28256c45","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-12-14T10:22:36.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e927b46f-7529-186c-0af7-b80fae2955a4","$type":"message"},"OpaqueRef:222fde48-1d9d-298b-262c-2bbe213b8078":{"uuid":"999ff9ea-5759-6c7c-4c3c-6c1188651b1c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-11-29T15:54:27.000Z","body":"VM 'XOA' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:222fde48-1d9d-298b-262c-2bbe213b8078","$type":"message"},"OpaqueRef:8f9215aa-fc33-056d-e7cf-c6464e3126c8":{"uuid":"85433882-cace-7f68-af6f-8eb0b7293aeb","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-11-29T15:10:20.000Z","body":"VM 'XOA' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8f9215aa-fc33-056d-e7cf-c6464e3126c8","$type":"message"},"OpaqueRef:0d142aa8-9bfa-8828-9a0c-b511d2858f70":{"uuid":"b7bf01e9-9c70-1db8-0d36-c3a28e886d30","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-11-28T13:45:17.000Z","body":"VM 'XOA' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0d142aa8-9bfa-8828-9a0c-b511d2858f70","$type":"message"},"OpaqueRef:c210c679-ec70-e4c1-56de-97c746681cfd":{"uuid":"7f87046f-1dad-b84a-a8aa-34db29dba855","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T17:14:25.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c210c679-ec70-e4c1-56de-97c746681cfd","$type":"message"},"OpaqueRef:df00def1-04b5-a40a-f444-2f0b02f363b8":{"uuid":"ed8d1ba2-f047-7b24-fca1-d8d57ce494e8","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T17:14:24.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df00def1-04b5-a40a-f444-2f0b02f363b8","$type":"message"},"OpaqueRef:59ee665c-9270-64a4-3829-aef3e045a705":{"uuid":"6a3f3e02-7697-44bf-96d5-4b3f9af9f656","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T17:14:24.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:59ee665c-9270-64a4-3829-aef3e045a705","$type":"message"},"OpaqueRef:c3a18de6-f140-580e-edc4-73a4c07548ae":{"uuid":"c0472f4d-1f78-0ba1-d3db-eff30d1832c4","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T17:14:21.000Z","body":"VM 'ceph2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c3a18de6-f140-580e-edc4-73a4c07548ae","$type":"message"},"OpaqueRef:2c1a796f-08bc-90a3-8f54-ba56264d197e":{"uuid":"196968a6-9c46-f644-0b3b-8d7ef67eb2e7","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T17:01:41.000Z","body":"VM 'ceph2' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2c1a796f-08bc-90a3-8f54-ba56264d197e","$type":"message"},"OpaqueRef:3e2f578b-1b57-6359-6577-d6ae52589f69":{"uuid":"f6fc853a-6b71-2ad7-bb91-3c636d369cde","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T17:01:41.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3e2f578b-1b57-6359-6577-d6ae52589f69","$type":"message"},"OpaqueRef:88979f4b-16ef-3b99-a616-aa1e2787bebe":{"uuid":"c6bc925d-9717-d357-29c9-e7d8b589cfb5","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T17:01:40.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:88979f4b-16ef-3b99-a616-aa1e2787bebe","$type":"message"},"OpaqueRef:4c8a6f53-b48b-9cfd-2a5a-1129f0b9cc0c":{"uuid":"e42492e2-2825-8d17-db4d-8756d868ab8f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T17:01:40.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4c8a6f53-b48b-9cfd-2a5a-1129f0b9cc0c","$type":"message"},"OpaqueRef:3e039291-0c60-7fcf-1140-4059b7adfce8":{"uuid":"b6824a9a-96a5-e20c-0450-086f517397ca","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T13:00:53.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3e039291-0c60-7fcf-1140-4059b7adfce8","$type":"message"},"OpaqueRef:df12fadd-3889-6632-a56e-acd60c721e7d":{"uuid":"331adab2-db0d-2dfe-97c9-d0582a1a9dbe","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T13:00:23.000Z","body":"VM 'Debian PV' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df12fadd-3889-6632-a56e-acd60c721e7d","$type":"message"},"OpaqueRef:0699a12c-7733-d07d-57ce-20ce3b99c2fe":{"uuid":"9af357ad-8df0-ad39-4222-84185ee59eb1","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:59:53.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0699a12c-7733-d07d-57ce-20ce3b99c2fe","$type":"message"},"OpaqueRef:2216c79b-cdf2-510a-ca37-d2fe815cd860":{"uuid":"f9c1429a-cb73-0d50-f30e-7b19ecec1982","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:59:23.000Z","body":"VM 'Debian PV' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2216c79b-cdf2-510a-ca37-d2fe815cd860","$type":"message"},"OpaqueRef:07a1ea89-32d4-45ef-0091-daaa8f3418fb":{"uuid":"20a53d52-ef5d-938b-cb89-f6fcf43df61b","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:58:54.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:07a1ea89-32d4-45ef-0091-daaa8f3418fb","$type":"message"},"OpaqueRef:89d83344-e132-09bd-f121-ab7083840e28":{"uuid":"ca94a114-d43b-98ad-3b45-a602d252aaca","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:58:26.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:89d83344-e132-09bd-f121-ab7083840e28","$type":"message"},"OpaqueRef:6ca688b6-c72a-483a-c7c4-c7b73519f677":{"uuid":"d7e9a11b-49d1-f86c-4205-432206128c98","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:58:02.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ca688b6-c72a-483a-c7c4-c7b73519f677","$type":"message"},"OpaqueRef:38563fb2-8124-71df-0317-91a601a2065a":{"uuid":"1d490134-fd2b-91d9-b973-107d27515bab","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:57:32.000Z","body":"VM 'Debian PV' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:38563fb2-8124-71df-0317-91a601a2065a","$type":"message"},"OpaqueRef:c77eacae-ec05-1f13-121a-65bb2d8cad0e":{"uuid":"58f85122-fb5f-8ae3-4701-012aa8986cf6","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:57:02.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c77eacae-ec05-1f13-121a-65bb2d8cad0e","$type":"message"},"OpaqueRef:4f9747ed-460c-1373-c9ee-22127756431a":{"uuid":"323dd7a3-cc74-fd54-029b-dfe47b01e108","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:56:35.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f9747ed-460c-1373-c9ee-22127756431a","$type":"message"},"OpaqueRef:45e2ec39-16a0-733d-cff3-952eabfec37f":{"uuid":"ef47c4bc-8734-4a81-0193-4604c0a246bb","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-25T12:56:08.000Z","body":"VM 'Debian HVM' shutdown forcibly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:45e2ec39-16a0-733d-cff3-952eabfec37f","$type":"message"},"OpaqueRef:40473701-e595-5b22-ddd0-14868cc9df61":{"uuid":"1240582d-e9cf-5c41-26ce-23ef832424e4","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:43:55.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:40473701-e595-5b22-ddd0-14868cc9df61","$type":"message"},"OpaqueRef:550262a6-f30b-a8d9-4a0e-4c17d3741272":{"uuid":"30f17db2-0719-aead-72c8-8938fb79ba86","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:43:28.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:550262a6-f30b-a8d9-4a0e-4c17d3741272","$type":"message"},"OpaqueRef:03019a7d-e346-0812-1e8f-278ad51f5385":{"uuid":"19cdf949-b4d3-3251-05b3-dc5d79b7f5b2","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:43:04.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:03019a7d-e346-0812-1e8f-278ad51f5385","$type":"message"},"OpaqueRef:c95765b0-9d89-5fe1-46de-0102a550fc7c":{"uuid":"34e5b351-b7fc-2338-a383-43264502ed03","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:42:34.000Z","body":"VM 'Debian PV' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c95765b0-9d89-5fe1-46de-0102a550fc7c","$type":"message"},"OpaqueRef:0ac0343a-3526-f112-a8e5-28ef59096c61":{"uuid":"3e025ee3-680f-0c6c-93d6-fcd97622554b","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:42:04.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0ac0343a-3526-f112-a8e5-28ef59096c61","$type":"message"},"OpaqueRef:5a428bee-ff4b-de52-5b38-a614397f9a5d":{"uuid":"1b5a1686-a6fe-eb44-489c-c86e1898b578","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:41:36.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5a428bee-ff4b-de52-5b38-a614397f9a5d","$type":"message"},"OpaqueRef:cedcb16d-149a-b223-3838-5c02f2e58772":{"uuid":"c9901aee-54aa-5f7b-9d36-75301876072e","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:41:12.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cedcb16d-149a-b223-3838-5c02f2e58772","$type":"message"},"OpaqueRef:cb1c8129-45b2-a64f-096e-f594489c1a3d":{"uuid":"06733a9c-95c8-e12f-158e-075fbb614307","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T12:40:53.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cb1c8129-45b2-a64f-096e-f594489c1a3d","$type":"message"},"OpaqueRef:505b2ded-f9ad-a15b-2620-defbe2c6faba":{"uuid":"567a4206-7dfc-b4c7-1b37-000f524e73b3","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T12:40:52.000Z","body":"VM 'ceph2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:505b2ded-f9ad-a15b-2620-defbe2c6faba","$type":"message"},"OpaqueRef:80a3e419-5a81-a7df-103d-5cf60bbde793":{"uuid":"290affce-2471-6d1d-071b-01bcccdc1376","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T12:40:52.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:80a3e419-5a81-a7df-103d-5cf60bbde793","$type":"message"},"OpaqueRef:d337c318-c3e5-ade6-a143-e52a038595c6":{"uuid":"e54a5824-8a83-ecd6-9969-1ba1b109ea6b","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T12:40:49.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d337c318-c3e5-ade6-a143-e52a038595c6","$type":"message"},"OpaqueRef:27fd285e-1195-3bed-0792-e7494d224c22":{"uuid":"aa7b3ea8-1eea-4b22-b4b7-219eae812c21","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:40:45.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:27fd285e-1195-3bed-0792-e7494d224c22","$type":"message"},"OpaqueRef:eaa52357-85fc-dae4-1a83-b150ba87e3f3":{"uuid":"e67d9b81-a6f9-1842-c62f-f077883096a4","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:40:20.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eaa52357-85fc-dae4-1a83-b150ba87e3f3","$type":"message"},"OpaqueRef:2b25250d-8230-89e8-a206-57941f1b9b9a":{"uuid":"9827a210-3ca1-0aac-1f0e-3edf48484451","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:39:51.000Z","body":"VM 'Debian PV' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2b25250d-8230-89e8-a206-57941f1b9b9a","$type":"message"},"OpaqueRef:0780ad32-08a1-b209-1d21-013cbd9209c5":{"uuid":"acc5074b-8ff6-7a44-2e1b-d9b8147d742d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T12:38:58.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0780ad32-08a1-b209-1d21-013cbd9209c5","$type":"message"},"OpaqueRef:38737284-e4e1-5172-2bf3-f9d70dcaadfa":{"uuid":"21375c1b-88cd-6e18-f3f6-5b1a2a3c730c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T12:38:57.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:38737284-e4e1-5172-2bf3-f9d70dcaadfa","$type":"message"},"OpaqueRef:8e1c087d-cd22-a742-b0c8-0046d75420ad":{"uuid":"be781e28-bc03-89b8-38e5-0707cf9425f2","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T12:38:56.000Z","body":"VM 'ceph2' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8e1c087d-cd22-a742-b0c8-0046d75420ad","$type":"message"},"OpaqueRef:cae3cdda-6cf0-f51b-e321-358785d28e3d":{"uuid":"6d8c1907-ccb8-383e-084b-fc55d4409f93","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T12:38:55.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cae3cdda-6cf0-f51b-e321-358785d28e3d","$type":"message"},"OpaqueRef:5a9837c6-6e04-72a1-3bf4-35fcc36605d4":{"uuid":"973161f9-3f26-9d54-f1dc-604400f06e39","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:38:39.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5a9837c6-6e04-72a1-3bf4-35fcc36605d4","$type":"message"},"OpaqueRef:f286c30a-a11b-bf69-0a2c-71bde11b448f":{"uuid":"ad8ca222-78a7-07d0-7571-2ef565c57b45","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T12:32:51.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f286c30a-a11b-bf69-0a2c-71bde11b448f","$type":"message"},"OpaqueRef:456d4d7f-77f8-ef40-aadd-f56601bc7c2b":{"uuid":"9f8bf874-47f4-b894-45ad-36b27425cce7","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T12:32:49.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:456d4d7f-77f8-ef40-aadd-f56601bc7c2b","$type":"message"},"OpaqueRef:ee72131a-5ae5-9d1b-b9ea-e0dd4033dae5":{"uuid":"a532b402-906f-7d60-bf6b-1510bb7d5913","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T12:32:47.000Z","body":"VM 'ceph2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ee72131a-5ae5-9d1b-b9ea-e0dd4033dae5","$type":"message"},"OpaqueRef:e3503f81-ed50-96d2-a41f-a328fccf7e31":{"uuid":"5ea9045a-f2e3-adfa-0d4f-7f65acd99195","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T12:32:45.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e3503f81-ed50-96d2-a41f-a328fccf7e31","$type":"message"},"OpaqueRef:16ff0c22-0da6-6a3f-fe15-0c809aac30d6":{"uuid":"abb2ccc5-afe9-1415-c53c-bd03afd91812","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-25T12:30:43.000Z","body":"VM 'Debian HVM' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:16ff0c22-0da6-6a3f-fe15-0c809aac30d6","$type":"message"},"OpaqueRef:4a949518-cc01-a003-f386-b3319db6d7a6":{"uuid":"20b0103f-40cf-2ec3-e4c1-f67dcadf83b1","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T12:30:42.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a949518-cc01-a003-f386-b3319db6d7a6","$type":"message"},"OpaqueRef:0473dedd-8be3-26b0-2e54-f82b36aca275":{"uuid":"00610828-8ca8-2775-3987-5e0e12665e62","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T12:30:42.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0473dedd-8be3-26b0-2e54-f82b36aca275","$type":"message"},"OpaqueRef:910c536b-8d46-72dc-2a74-9f53afb3d111":{"uuid":"7af2bd9c-c3d6-5cab-bdbb-a2abfd720935","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:30:41.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:910c536b-8d46-72dc-2a74-9f53afb3d111","$type":"message"},"OpaqueRef:89cb42cd-fcec-d577-47eb-451e61fa2ff8":{"uuid":"ea519baa-b060-3ce5-5c9a-d20c3cd07216","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T12:30:41.000Z","body":"VM 'ceph2' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:89cb42cd-fcec-d577-47eb-451e61fa2ff8","$type":"message"},"OpaqueRef:13ca6979-573f-ff45-0b66-238d2d70661d":{"uuid":"f2b80510-8ba4-da1d-39fc-3b48c24e7c7d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T12:30:41.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:13ca6979-573f-ff45-0b66-238d2d70661d","$type":"message"},"OpaqueRef:df5ab3ef-8fee-26b6-befd-e35c1648afa7":{"uuid":"b3d25fbb-58df-00ad-51ed-215e266e06f8","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T12:22:24.000Z","body":"VM 'ceph2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df5ab3ef-8fee-26b6-befd-e35c1648afa7","$type":"message"},"OpaqueRef:afc2c7c3-dc4b-74ab-618c-ade0a3d83fe2":{"uuid":"0853e967-1639-4705-2956-92d54ea0648f","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T12:22:24.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:afc2c7c3-dc4b-74ab-618c-ade0a3d83fe2","$type":"message"},"OpaqueRef:c8834c52-f15b-437d-1e09-958fedbf3c5b":{"uuid":"5f5db1a1-ed9e-c838-6e41-11b6e319884f","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T12:22:24.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c8834c52-f15b-437d-1e09-958fedbf3c5b","$type":"message"},"OpaqueRef:2df12716-3d0d-d6ad-aaeb-e1e244915725":{"uuid":"50f34023-77c4-bdc2-91b0-488002244556","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T12:22:22.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2df12716-3d0d-d6ad-aaeb-e1e244915725","$type":"message"},"OpaqueRef:56af54b2-9262-2d1a-c6fb-da92c4d81ee0":{"uuid":"ef143a8f-ace9-4568-ba30-8baa70547898","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T12:21:16.000Z","body":"VM 'ceph2' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:56af54b2-9262-2d1a-c6fb-da92c4d81ee0","$type":"message"},"OpaqueRef:4645ec56-8e14-db2b-6124-34c9858729df":{"uuid":"d3342d77-6fbf-50b2-a918-fa62129df591","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T12:21:16.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4645ec56-8e14-db2b-6124-34c9858729df","$type":"message"},"OpaqueRef:38029f0c-3d01-0338-4f71-a11d41740f67":{"uuid":"570b28d7-2fec-5f32-36e3-ed647a77134d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T12:21:15.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:38029f0c-3d01-0338-4f71-a11d41740f67","$type":"message"},"OpaqueRef:07d40d2c-4f6e-4f5f-0c3e-c2ea028d4fc4":{"uuid":"e4891310-bbcd-985e-e8f3-3782e1f6c938","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T12:21:13.000Z","body":"VM 'ceph3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:07d40d2c-4f6e-4f5f-0c3e-c2ea028d4fc4","$type":"message"},"OpaqueRef:e50d37bb-6610-8be3-ae1b-685edfd3f356":{"uuid":"5ea0fb32-bcb1-27d5-86d1-26461ec52670","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T12:20:54.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e50d37bb-6610-8be3-ae1b-685edfd3f356","$type":"message"},"OpaqueRef:62c2fc2f-35a1-3fb1-fe9a-f21a28e416eb":{"uuid":"377d2c79-9c96-6764-5b4d-c8b43b6c5a8c","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T12:20:54.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:62c2fc2f-35a1-3fb1-fe9a-f21a28e416eb","$type":"message"},"OpaqueRef:6df45555-1b11-2873-8947-2b6e7c9445be":{"uuid":"b9597fb4-12b1-ef6d-79fd-f0073b8dc298","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T12:20:48.000Z","body":"VM 'ceph3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6df45555-1b11-2873-8947-2b6e7c9445be","$type":"message"},"OpaqueRef:6f960d13-0fcd-88ba-7186-6b1c9b73ae68":{"uuid":"707db62d-b287-75a6-fbda-33f9d53e8e73","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T12:20:47.000Z","body":"VM 'ceph2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6f960d13-0fcd-88ba-7186-6b1c9b73ae68","$type":"message"},"OpaqueRef:8a82b4ea-e463-988b-a959-4457840e7eda":{"uuid":"08e69e6b-d8f0-a9d6-ffe3-8a07153bd0c8","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-25T12:16:03.000Z","body":"VM 'ceph4' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8a82b4ea-e463-988b-a959-4457840e7eda","$type":"message"},"OpaqueRef:c34bc318-9444-875f-984e-6e9a15b5dc62":{"uuid":"2b467179-45da-8347-4466-c43b28f66a5d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-25T12:16:00.000Z","body":"VM 'ceph1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c34bc318-9444-875f-984e-6e9a15b5dc62","$type":"message"},"OpaqueRef:d3c60e69-2cf8-191f-9679-d6ae0ecdf5f9":{"uuid":"68603c26-c689-7b64-83a8-752490fcc9c0","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-25T12:15:59.000Z","body":"VM 'ceph3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d3c60e69-2cf8-191f-9679-d6ae0ecdf5f9","$type":"message"},"OpaqueRef:695fbbea-5997-4a6e-0cda-e3ace3b48d21":{"uuid":"f2ab8405-2b7e-8187-1f81-11ad6ffb8299","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-25T12:15:58.000Z","body":"VM 'ceph2' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:695fbbea-5997-4a6e-0cda-e3ace3b48d21","$type":"message"},"OpaqueRef:47dbfe1b-a415-4a33-2c07-9d3da9cf8c7c":{"uuid":"786e8159-5627-7492-1d83-5276f1fdaaab","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-11-25T12:15:55.000Z","body":"VM 'Windows XP SP3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:47dbfe1b-a415-4a33-2c07-9d3da9cf8c7c","$type":"message"},"OpaqueRef:6dfe928c-88a9-9d4d-f965-00771e367f88":{"uuid":"86201e2a-e6d3-c13c-ba0a-39c649341bd1","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:15:07.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6dfe928c-88a9-9d4d-f965-00771e367f88","$type":"message"},"OpaqueRef:d00957de-8850-e2d4-5fe4-a677b2c4b904":{"uuid":"746ce548-c2b5-287e-6291-c86c82f57e93","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:14:40.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d00957de-8850-e2d4-5fe4-a677b2c4b904","$type":"message"},"OpaqueRef:1c2b5177-f37b-96b5-e5cb-34bcd091423f":{"uuid":"a70209f8-d9a1-621b-d277-f1da80371596","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:14:16.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1c2b5177-f37b-96b5-e5cb-34bcd091423f","$type":"message"},"OpaqueRef:89d96b61-4f6f-eee9-b276-06c952047a41":{"uuid":"c3ff33b5-5b1e-9940-db74-013a507e7524","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:13:46.000Z","body":"VM 'Debian PV' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:89d96b61-4f6f-eee9-b276-06c952047a41","$type":"message"},"OpaqueRef:a93d6123-6c7c-144e-af87-730fe71cbdaa":{"uuid":"0e6a1ee2-0581-db68-ab37-c0be14a4f7d1","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:13:17.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a93d6123-6c7c-144e-af87-730fe71cbdaa","$type":"message"},"OpaqueRef:c355dc71-ffad-a44e-ca29-e390e13539aa":{"uuid":"144c79b8-70e9-aea1-f183-0df768f23bf2","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:12:50.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c355dc71-ffad-a44e-ca29-e390e13539aa","$type":"message"},"OpaqueRef:0fd899d1-791d-07f0-d7dc-e74d95ff5207":{"uuid":"42f7019a-7cd6-d614-e1f8-00c09bb1d812","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:12:25.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0fd899d1-791d-07f0-d7dc-e74d95ff5207","$type":"message"},"OpaqueRef:b7d11cf1-e9ba-1b4c-1d24-301af1788c61":{"uuid":"959d1244-273a-d6c8-67b7-b37e6eb47a10","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:11:56.000Z","body":"VM 'Debian PV' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b7d11cf1-e9ba-1b4c-1d24-301af1788c61","$type":"message"},"OpaqueRef:bb2be874-2874-84d7-e860-36867922837e":{"uuid":"0eee8318-037d-3e5a-a2cf-185d90d8377b","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:11:26.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bb2be874-2874-84d7-e860-36867922837e","$type":"message"},"OpaqueRef:b8856419-474d-1ce9-81b8-7ce67f3bfcd7":{"uuid":"93b71056-1361-4c18-b321-e4dcb66f062d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-25T12:10:56.000Z","body":"VM 'Debian PV' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b8856419-474d-1ce9-81b8-7ce67f3bfcd7","$type":"message"},"OpaqueRef:f3a065bc-e687-65e8-8883-e75c572219b0":{"uuid":"8c4b5d54-403a-1914-1dcf-f3578097a1ba","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-11-25T11:59:24.000Z","body":"VM 'XOA' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f3a065bc-e687-65e8-8883-e75c572219b0","$type":"message"},"OpaqueRef:6ba7c244-3b44-2ed2-ec81-4fa13ea82465":{"uuid":"052be664-a134-2b35-d0a4-b390c8839246","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-11-25T10:15:31.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ba7c244-3b44-2ed2-ec81-4fa13ea82465","$type":"message"},"OpaqueRef:2b3b3737-0845-4c75-001c-386e3b22d521":{"uuid":"c18b63aa-781d-431c-eb65-653931591b55","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-22T09:34:40.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2b3b3737-0845-4c75-001c-386e3b22d521","$type":"message"},"OpaqueRef:fc99f9e9-903e-460c-3e60-e1c927aa7343":{"uuid":"a3f6287a-0db8-7a7b-0334-7c0d365edfb7","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-22T09:34:15.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fc99f9e9-903e-460c-3e60-e1c927aa7343","$type":"message"},"OpaqueRef:3e02e2e7-f4c3-5678-21d7-77d83fcb2f83":{"uuid":"7f2d4cb4-5788-b8f1-8614-276e123f1889","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-22T09:33:48.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3e02e2e7-f4c3-5678-21d7-77d83fcb2f83","$type":"message"},"OpaqueRef:63e8cf76-0de8-8988-a438-3d63f7ba0139":{"uuid":"e4f7e49d-c9f3-2170-26bd-35f4e888c878","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:12:53.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:63e8cf76-0de8-8988-a438-3d63f7ba0139","$type":"message"},"OpaqueRef:11bc832d-09ae-94ce-62ad-0cd81b74c2b5":{"uuid":"dd23353d-28f6-1c1f-cfdb-481b8792a249","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:12:25.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:11bc832d-09ae-94ce-62ad-0cd81b74c2b5","$type":"message"},"OpaqueRef:f48f3fd7-daac-c6ce-8fb5-7291c1cdacc4":{"uuid":"db219d1c-8d3a-b10d-7499-0b4896782959","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:12:01.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f48f3fd7-daac-c6ce-8fb5-7291c1cdacc4","$type":"message"},"OpaqueRef:6d8d3598-7034-2d67-efa3-e9564b240c0d":{"uuid":"472529fd-967c-e354-c83c-d381f4221f95","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:11:34.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6d8d3598-7034-2d67-efa3-e9564b240c0d","$type":"message"},"OpaqueRef:4de9b357-24df-f163-01b1-d147bb79d0f5":{"uuid":"42205cd7-5f91-bc9b-55a7-990b02c063d5","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:11:09.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4de9b357-24df-f163-01b1-d147bb79d0f5","$type":"message"},"OpaqueRef:8b1736bd-9d7f-e7cf-fd8c-da903d57ff45":{"uuid":"906c2122-d81b-6f49-40fc-ce64e9c63bb9","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:10:42.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8b1736bd-9d7f-e7cf-fd8c-da903d57ff45","$type":"message"},"OpaqueRef:a69b462a-25b2-583d-0d3f-a48e0a64b33c":{"uuid":"ea0d4906-1af4-0ffc-1f40-8fce7897306e","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:10:17.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a69b462a-25b2-583d-0d3f-a48e0a64b33c","$type":"message"},"OpaqueRef:9c4c7f51-6e6c-f752-c9b9-353d4ec82ec9":{"uuid":"71013146-c862-deae-db7b-3eb9d6f7c08f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:09:50.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9c4c7f51-6e6c-f752-c9b9-353d4ec82ec9","$type":"message"},"OpaqueRef:8ec8dc2c-5bdb-93cc-9703-8c83258ff023":{"uuid":"01534317-624e-b30e-fd21-b87879db6bcc","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:09:25.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8ec8dc2c-5bdb-93cc-9703-8c83258ff023","$type":"message"},"OpaqueRef:29cbae23-15b2-8804-2ca3-f182fd879da1":{"uuid":"d89bb516-b660-faca-8d9c-5cfd45980577","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T16:08:57.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:29cbae23-15b2-8804-2ca3-f182fd879da1","$type":"message"},"OpaqueRef:17124735-80d9-0bb7-9a31-c4697d54d080":{"uuid":"ca21e161-2c2e-9ea1-0709-5af1738bf5c6","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:18:09.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:17124735-80d9-0bb7-9a31-c4697d54d080","$type":"message"},"OpaqueRef:c692c1fb-8969-a71a-3514-29eec1c4b765":{"uuid":"e2fc9d76-eb70-2fb7-5592-91478a9e7031","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:17:42.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c692c1fb-8969-a71a-3514-29eec1c4b765","$type":"message"},"OpaqueRef:d97d99b8-3eb4-940f-6f5a-bf9999c094c7":{"uuid":"69c0ce9a-e664-6345-5753-c70ef2c2e715","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:17:17.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d97d99b8-3eb4-940f-6f5a-bf9999c094c7","$type":"message"},"OpaqueRef:3b32cbac-a15d-3fb8-d794-ab6f0beb6704":{"uuid":"7f600c29-ca7b-420b-1fc0-f5cc01f29c10","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:16:50.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3b32cbac-a15d-3fb8-d794-ab6f0beb6704","$type":"message"},"OpaqueRef:5586dfea-684c-2d82-5a57-bb93d1ca29c5":{"uuid":"4416b06b-b911-afd4-092d-799ac5694fe4","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:16:25.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5586dfea-684c-2d82-5a57-bb93d1ca29c5","$type":"message"},"OpaqueRef:d67b34cc-8d05-f093-ef9d-47776f3e7477":{"uuid":"ef0b2ae2-1e3e-388f-f18e-af81dbc71e02","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:15:58.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d67b34cc-8d05-f093-ef9d-47776f3e7477","$type":"message"},"OpaqueRef:f7cb5b78-2590-bd97-bffd-76fb4ab54108":{"uuid":"cdf12f72-1a09-9199-73e6-589a18316e9b","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:15:33.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f7cb5b78-2590-bd97-bffd-76fb4ab54108","$type":"message"},"OpaqueRef:c7aeeb5a-4d1e-6134-20a7-07f826632935":{"uuid":"3c3d3eab-7c27-c626-c4d0-e3aafc7455bd","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:15:06.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c7aeeb5a-4d1e-6134-20a7-07f826632935","$type":"message"},"OpaqueRef:19e619b4-a443-24c7-b7f8-32b762eed0d1":{"uuid":"d7e5cd36-9d5c-eda8-c97c-39d00617b7d2","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:14:41.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:19e619b4-a443-24c7-b7f8-32b762eed0d1","$type":"message"},"OpaqueRef:368f9f7a-8c02-468f-8670-5b36685b693f":{"uuid":"3239c4a6-3d60-cb06-298d-a3ad93d00cd0","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T15:14:13.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:368f9f7a-8c02-468f-8670-5b36685b693f","$type":"message"},"OpaqueRef:54dc2ac2-f63c-fb79-e836-9544f3a1261c":{"uuid":"1f7218b2-4853-8635-0a44-a2946767a07f","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:46:23.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:54dc2ac2-f63c-fb79-e836-9544f3a1261c","$type":"message"},"OpaqueRef:f7bdec11-ec6b-7f09-a1c0-d9a208e54140":{"uuid":"fa4294bf-9a74-18ae-01f8-a20c6b1ad593","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:45:56.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f7bdec11-ec6b-7f09-a1c0-d9a208e54140","$type":"message"},"OpaqueRef:11ddb0e6-02e5-922d-3020-9105555a79c2":{"uuid":"ee15c104-9d9d-62c1-4f5f-ad95f5e7792d","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:45:30.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:11ddb0e6-02e5-922d-3020-9105555a79c2","$type":"message"},"OpaqueRef:ffae6003-e235-9477-afab-11c6b988733b":{"uuid":"ff05d925-8bc1-e77f-b85b-3c271388c70c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:45:03.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ffae6003-e235-9477-afab-11c6b988733b","$type":"message"},"OpaqueRef:834c8d7a-b248-65ed-1512-2a236c2561ef":{"uuid":"1cbbfbec-550b-85fa-84f8-4238f9adef52","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:44:39.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:834c8d7a-b248-65ed-1512-2a236c2561ef","$type":"message"},"OpaqueRef:611964c9-7ad2-fbe9-6372-ac942540ad30":{"uuid":"28924c41-73a0-29ea-ddcc-9eeb2ace3c1a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:44:12.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:611964c9-7ad2-fbe9-6372-ac942540ad30","$type":"message"},"OpaqueRef:ec7f97d9-894d-c211-9dbd-ae4ee8f11329":{"uuid":"84285830-7ddd-3e29-9d29-29988591b609","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:43:47.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ec7f97d9-894d-c211-9dbd-ae4ee8f11329","$type":"message"},"OpaqueRef:c3b983d6-71bb-0260-998a-2fb54ae3d625":{"uuid":"b0bf1744-bb38-930e-f953-3913c365018c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:43:20.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c3b983d6-71bb-0260-998a-2fb54ae3d625","$type":"message"},"OpaqueRef:7e34698a-f6fc-57dd-dd7d-2d8801984bc8":{"uuid":"6e41a55e-2f33-8c26-c877-a98fd11f3d53","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:42:55.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7e34698a-f6fc-57dd-dd7d-2d8801984bc8","$type":"message"},"OpaqueRef:15f97eee-cb78-eccf-86de-f4e5327b38d2":{"uuid":"1eb87f38-3ebf-f8de-4d9a-bf83db9be99c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:42:28.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:15f97eee-cb78-eccf-86de-f4e5327b38d2","$type":"message"},"OpaqueRef:bf424b65-80a5-a6ff-3667-2b09121c95be":{"uuid":"2e8bd018-73fb-394b-434d-851a0ba45910","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:35:21.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:bf424b65-80a5-a6ff-3667-2b09121c95be","$type":"message"},"OpaqueRef:ea3b7047-2649-3748-e148-a3fad1e80a93":{"uuid":"8ff0680a-28fa-d8c8-f118-5ebb1b23bee5","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:34:54.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ea3b7047-2649-3748-e148-a3fad1e80a93","$type":"message"},"OpaqueRef:addf7a8d-0a16-c6c7-d1c2-2c6b472fba84":{"uuid":"8426a244-066a-e54d-2758-a3ce19300799","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:34:28.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:addf7a8d-0a16-c6c7-d1c2-2c6b472fba84","$type":"message"},"OpaqueRef:3750d3cc-d50c-6086-2922-041f2de7c247":{"uuid":"ca21d5e9-76b3-6905-0fad-b76bd12fd2a0","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:34:01.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3750d3cc-d50c-6086-2922-041f2de7c247","$type":"message"},"OpaqueRef:c517348f-6f54-168a-301a-1c15166525b7":{"uuid":"3c6a18b0-44f2-7f20-e635-4972a649fa9d","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:33:37.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c517348f-6f54-168a-301a-1c15166525b7","$type":"message"},"OpaqueRef:1eacec46-4911-c265-2675-8ed1385ff93d":{"uuid":"7bce9bbc-d657-30a6-ed52-dfdd931790cb","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:33:09.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1eacec46-4911-c265-2675-8ed1385ff93d","$type":"message"},"OpaqueRef:93e0f712-f442-f04d-ba2b-d43083e72837":{"uuid":"37c74d98-86dc-4257-d24f-a545012203df","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:32:44.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:93e0f712-f442-f04d-ba2b-d43083e72837","$type":"message"},"OpaqueRef:0f53fc2f-7fb6-fa25-8e90-86b32e0720c2":{"uuid":"96bccac3-1e2a-43ec-a3c9-0b8aa0b463c7","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:32:16.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f53fc2f-7fb6-fa25-8e90-86b32e0720c2","$type":"message"},"OpaqueRef:d7645518-4ebe-a69d-26c5-6216abdff2d0":{"uuid":"2f9db4c6-d57d-df3b-31fd-a39357bce170","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:31:51.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d7645518-4ebe-a69d-26c5-6216abdff2d0","$type":"message"},"OpaqueRef:152d3a6e-2a36-5b9c-99d1-1cd29fb177d5":{"uuid":"c2f7bf99-b3a9-656e-67d1-9217d5d23055","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T13:31:24.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:152d3a6e-2a36-5b9c-99d1-1cd29fb177d5","$type":"message"},"OpaqueRef:4c0254ec-280e-a5ee-dbff-e8d5f54f2280":{"uuid":"2717a2a6-58d2-7cf1-4909-19d23ac7065c","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:39:07.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4c0254ec-280e-a5ee-dbff-e8d5f54f2280","$type":"message"},"OpaqueRef:55d5d171-5941-394d-7d8b-200598c4ed15":{"uuid":"c80d2f4c-81f5-13cd-e38b-36ae6cf0b5dd","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:38:40.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:55d5d171-5941-394d-7d8b-200598c4ed15","$type":"message"},"OpaqueRef:82401951-5185-33fd-4485-9f488f742dd2":{"uuid":"9b922cf3-49e7-a3dd-36c3-7e8fd173fda0","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:38:15.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:82401951-5185-33fd-4485-9f488f742dd2","$type":"message"},"OpaqueRef:6c3a8aae-88e2-393e-bfcd-2326242f3a5d":{"uuid":"b47c5121-f2b9-4b7b-f7a2-fdb4419b2a7f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:37:48.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6c3a8aae-88e2-393e-bfcd-2326242f3a5d","$type":"message"},"OpaqueRef:377dc39a-8ef4-345a-1d05-71db61a26c9a":{"uuid":"f3e5bf27-0797-f27f-7a6a-d4f45aa269c7","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:37:23.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:377dc39a-8ef4-345a-1d05-71db61a26c9a","$type":"message"},"OpaqueRef:d4bc3a6a-c73b-f028-df2f-76156c4f5a83":{"uuid":"bb682593-fb4b-d906-a2a2-b3bfc5597643","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:36:56.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d4bc3a6a-c73b-f028-df2f-76156c4f5a83","$type":"message"},"OpaqueRef:4bf58576-702c-d278-3aac-c8948c02c699":{"uuid":"38fc04d4-e6fe-6c79-4813-87bae3b3dc00","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:36:31.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4bf58576-702c-d278-3aac-c8948c02c699","$type":"message"},"OpaqueRef:3ed75c8a-642d-3c2b-8556-71dbd990ccde":{"uuid":"1d78a97c-38fb-cf9c-b4e4-4b25af67efcf","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:36:04.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3ed75c8a-642d-3c2b-8556-71dbd990ccde","$type":"message"},"OpaqueRef:0b35b70e-5849-3706-ae30-9e31f9cf15f5":{"uuid":"d4faa649-025f-b3f0-0ec3-21f1f53b3557","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:35:39.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0b35b70e-5849-3706-ae30-9e31f9cf15f5","$type":"message"},"OpaqueRef:934b1537-9a59-aa0e-dd06-44816a34768d":{"uuid":"06a6af56-99d3-223f-1ecc-aebc00f435e6","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:35:12.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:934b1537-9a59-aa0e-dd06-44816a34768d","$type":"message"},"OpaqueRef:993069e1-b8d2-58e0-ae8a-b91bb83c90d7":{"uuid":"4be0225b-3155-c19e-3c46-f1a1d43ec925","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:33:55.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:993069e1-b8d2-58e0-ae8a-b91bb83c90d7","$type":"message"},"OpaqueRef:cf85856a-2477-5bb2-641b-e9e49a6f49c1":{"uuid":"3672a059-226f-848d-ec73-babc19cbad98","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:33:27.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf85856a-2477-5bb2-641b-e9e49a6f49c1","$type":"message"},"OpaqueRef:53b17858-95c1-d6cd-4e9f-f92c71143536":{"uuid":"b3824a5a-560d-5d60-cf89-c93f3d45793c","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:33:03.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:53b17858-95c1-d6cd-4e9f-f92c71143536","$type":"message"},"OpaqueRef:dc5a6b1e-efde-b225-253f-c7ca1ff6b550":{"uuid":"8ca2c44e-244b-276e-d718-1c73d9c59e21","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:32:35.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dc5a6b1e-efde-b225-253f-c7ca1ff6b550","$type":"message"},"OpaqueRef:9533442c-c285-dde0-ed93-c16a8ff8173c":{"uuid":"d6860f97-e159-f626-5a65-c317018baf44","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:32:11.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9533442c-c285-dde0-ed93-c16a8ff8173c","$type":"message"},"OpaqueRef:b2462bcd-89f0-6ee9-06e6-87985fac03a5":{"uuid":"12d80af6-4a39-e80e-08b7-9529a40676df","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:31:43.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b2462bcd-89f0-6ee9-06e6-87985fac03a5","$type":"message"},"OpaqueRef:5df20215-25b6-63fb-e24e-695d3bbdaeb1":{"uuid":"17c9c110-577f-c937-0958-a322ce5b2591","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:31:19.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5df20215-25b6-63fb-e24e-695d3bbdaeb1","$type":"message"},"OpaqueRef:61bf7251-a1e7-b076-3bba-e9f350684c4b":{"uuid":"7fe73710-822f-90b0-f2b6-1f60bd2d3311","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:30:51.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:61bf7251-a1e7-b076-3bba-e9f350684c4b","$type":"message"},"OpaqueRef:90a25a06-c575-4f92-2709-0ab5de89c2db":{"uuid":"fbec35d9-9913-8a62-aa1c-f0329d1ded62","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:30:27.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:90a25a06-c575-4f92-2709-0ab5de89c2db","$type":"message"},"OpaqueRef:77fb1c7c-5da3-ec40-7514-a11cd80e6f81":{"uuid":"b76baf15-0d03-e47b-9e6b-ca3e68ebe87d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:29:59.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:77fb1c7c-5da3-ec40-7514-a11cd80e6f81","$type":"message"},"OpaqueRef:2e12af44-7a71-92ca-8996-28db405d3da8":{"uuid":"c5cf0f46-d802-5087-9e2b-7d71d52f4cdd","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:28:54.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2e12af44-7a71-92ca-8996-28db405d3da8","$type":"message"},"OpaqueRef:083cfed1-af6d-31f1-f2bf-3a40ba4f6d91":{"uuid":"e70453d6-4b60-8fba-7f21-c67e1bab9fca","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:27:17.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:083cfed1-af6d-31f1-f2bf-3a40ba4f6d91","$type":"message"},"OpaqueRef:dfcff882-3c40-8bca-db1e-523d148f7430":{"uuid":"9b0ec491-599e-9f5f-2ecb-40db76155a05","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-21T12:23:35.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dfcff882-3c40-8bca-db1e-523d148f7430","$type":"message"},"OpaqueRef:4c06fc0f-f561-9f10-f261-ce383a3d3859":{"uuid":"420b729c-7e77-363d-bc71-e282d155e7f1","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-21T12:21:50.000Z","body":"VM 'ceph4' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4c06fc0f-f561-9f10-f261-ce383a3d3859","$type":"message"},"OpaqueRef:f1772181-91b3-53a3-fcdf-76ce90f043c9":{"uuid":"95f36cca-7230-460a-b2de-080896a123e1","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T12:20:15.000Z","body":"VM 'Debian PV' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f1772181-91b3-53a3-fcdf-76ce90f043c9","$type":"message"},"OpaqueRef:39302707-a7fb-e599-0225-c0871ad31a37":{"uuid":"13db7ba7-5fc7-4631-a553-b7e95af6ee50","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-21T12:20:00.000Z","body":"VM 'ceph4' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:39302707-a7fb-e599-0225-c0871ad31a37","$type":"message"},"OpaqueRef:8af09beb-8086-c0c6-4d4e-0f10547d0bff":{"uuid":"9c25c823-82fb-37bf-9244-81c74be0d8b6","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-21T10:57:47.000Z","body":"VM 'ceph4' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8af09beb-8086-c0c6-4d4e-0f10547d0bff","$type":"message"},"OpaqueRef:07ce48c1-8832-be9b-a8d5-6f8bf6dd9d31":{"uuid":"f462ff3a-9616-d900-ffb5-9f58296f06a0","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-21T10:57:26.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:07ce48c1-8832-be9b-a8d5-6f8bf6dd9d31","$type":"message"},"OpaqueRef:7506c3a2-6140-d39e-8b95-9b9c833774a0":{"uuid":"553c331d-4033-17e3-23ce-f59256e3f05f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-11-19T09:24:34.000Z","body":"VM 'Windows XP SP3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7506c3a2-6140-d39e-8b95-9b9c833774a0","$type":"message"},"OpaqueRef:0e3fc97f-45ce-26c3-9435-899be96b35c4":{"uuid":"5b1944d5-6423-4584-2fe5-21866750eafa","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-11-19T09:21:25.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e3fc97f-45ce-26c3-9435-899be96b35c4","$type":"message"},"OpaqueRef:c9fa34a2-208e-dc00-ae0a-f98d3cc2209e":{"uuid":"3f744939-9b22-5709-58b1-d280dab3dd2a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"dd04ba80-a9c9-bcca-19f2-8249ce816546","timestamp":"2013-11-13T14:11:07.000Z","body":"VM 'auths1' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c9fa34a2-208e-dc00-ae0a-f98d3cc2209e","$type":"message"},"OpaqueRef:e1d36994-3373-c6f8-efb3-ffbeacf4607e":{"uuid":"5c26fb9c-8dc7-1213-6415-2dc720c9edd6","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"dd04ba80-a9c9-bcca-19f2-8249ce816546","timestamp":"2013-11-13T14:07:57.000Z","body":"VM 'ceph0 (1)' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e1d36994-3373-c6f8-efb3-ffbeacf4607e","$type":"message"},"OpaqueRef:d62269fe-b4f1-49c0-b4bc-28745665a6fe":{"uuid":"8f452269-1a77-f32d-76ef-b05a323b71e6","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-13T13:15:15.000Z","body":"VM 'Debian HVM' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d62269fe-b4f1-49c0-b4bc-28745665a6fe","$type":"message"},"OpaqueRef:fc0d9091-528b-9ccb-0c57-0c3c6cec0fd0":{"uuid":"4c6e893a-13f5-a62a-0050-85007fe2b460","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-13T09:23:20.000Z","body":"VM 'ceph1' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fc0d9091-528b-9ccb-0c57-0c3c6cec0fd0","$type":"message"},"OpaqueRef:cc3f6232-4655-2741-8e0f-50aa6828170e":{"uuid":"064ace2e-4d90-48a3-3414-e6dcdb3093ea","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f39634f9-b880-f9a4-4792-cd5efc7c05ba","timestamp":"2013-11-13T09:23:19.000Z","body":"VM 'ceph2' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cc3f6232-4655-2741-8e0f-50aa6828170e","$type":"message"},"OpaqueRef:e1c0ddb6-2f97-2c40-ccb4-e5c5cfe58741":{"uuid":"fdfa31ce-c764-d8a3-73f3-982bc3c7da78","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"250160fb-ac75-21b6-3321-79610b055b43","timestamp":"2013-11-13T09:23:19.000Z","body":"VM 'ceph4' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e1c0ddb6-2f97-2c40-ccb4-e5c5cfe58741","$type":"message"},"OpaqueRef:ed499671-2c01-3dc9-f6cd-553fef4b6716":{"uuid":"b6c3c691-de5a-a0f4-eed7-f7627c2b9437","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"65f9d98c-5b1f-bb9e-4aca-3abb044d385c","timestamp":"2013-11-13T09:23:16.000Z","body":"VM 'ceph3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ed499671-2c01-3dc9-f6cd-553fef4b6716","$type":"message"},"OpaqueRef:964025a3-fc7e-3429-5442-d61d13328fdb":{"uuid":"5e5b1a01-0fdc-4099-7616-09d3f8c71a88","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-13T09:18:34.000Z","body":"VM 'ceph1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:964025a3-fc7e-3429-5442-d61d13328fdb","$type":"message"},"OpaqueRef:8b883e49-167c-b99b-efb3-b4f922c62fec":{"uuid":"a9e0caa7-f4d6-8bc5-0378-3ec0b6be6681","name":"VM_REBOOTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-13T09:15:25.000Z","body":"VM 'ceph1' rebooted forcibly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8b883e49-167c-b99b-efb3-b4f922c62fec","$type":"message"},"OpaqueRef:4f030374-d2f6-2608-3c5b-e2bc9092da17":{"uuid":"ed8ddaa8-19de-7efc-85a2-96e5c3822307","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"6ff6f381-5400-b4f9-dfcb-c47a7e75f640","timestamp":"2013-11-13T09:06:12.000Z","body":"VM 'ceph1' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4f030374-d2f6-2608-3c5b-e2bc9092da17","$type":"message"},"OpaqueRef:9b9bb5a5-2606-cfa2-98c6-59bfb2920864":{"uuid":"07aed931-a2d5-885b-ecb4-339977f2e9ff","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-11-13T08:50:30.000Z","body":"VM 'Windows XP SP3' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9b9bb5a5-2606-cfa2-98c6-59bfb2920864","$type":"message"},"OpaqueRef:6ca16f45-6266-6cff-55cd-19a8ef0acf1a":{"uuid":"746451ef-7b54-f305-7558-b1a6bb22d5b4","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-11-13T08:31:32.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6ca16f45-6266-6cff-55cd-19a8ef0acf1a","$type":"message"},"OpaqueRef:b9daa8be-b11c-8c6e-bea6-09c7bd997213":{"uuid":"a240ae5e-5cbb-1453-17e7-01340c56ed31","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-11-13T08:31:22.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b9daa8be-b11c-8c6e-bea6-09c7bd997213","$type":"message"},"OpaqueRef:9debbecd-c797-c0db-2c0e-b35b6f3aef27":{"uuid":"934aaf25-95f5-de92-90ff-23d1fdd88d45","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-12T12:50:15.000Z","body":"VM 'Debian HVM' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9debbecd-c797-c0db-2c0e-b35b6f3aef27","$type":"message"},"OpaqueRef:0523affc-e41d-3e24-fe74-3ce2929f46ec":{"uuid":"27c09f61-ca85-e191-5963-bcf76c257f1b","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-12T11:51:37.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0523affc-e41d-3e24-fe74-3ce2929f46ec","$type":"message"},"OpaqueRef:4d4bf53f-f198-8f0b-f997-382de0c14c16":{"uuid":"bee439fe-0ba0-805b-8139-08a3d271a29a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-12T11:25:33.000Z","body":"VM 'Debian HVM' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4d4bf53f-f198-8f0b-f997-382de0c14c16","$type":"message"},"OpaqueRef:d5bdd4d2-3eaf-a427-e3b9-9ab4df300150":{"uuid":"e38c66dc-6f23-fdbf-5459-c995c18b54fb","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-12T11:19:16.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d5bdd4d2-3eaf-a427-e3b9-9ab4df300150","$type":"message"},"OpaqueRef:b987db29-5c05-9500-adb4-f93e0cf72616":{"uuid":"7e65a2bc-ccab-7b5f-e7c1-1fdbf93cf761","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-12T09:32:53.000Z","body":"VM 'Debian HVM' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b987db29-5c05-9500-adb4-f93e0cf72616","$type":"message"},"OpaqueRef:a428e62e-9d15-9311-5546-52cd41575c44":{"uuid":"5cc03f3a-e74e-ed93-cb06-a5a8048f355d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-12T09:14:33.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a428e62e-9d15-9311-5546-52cd41575c44","$type":"message"},"OpaqueRef:0238568f-14cd-d391-ef3a-b81fbbf6976f":{"uuid":"8d1fdd42-4ddc-dfba-e886-747f46965824","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-11-12T08:34:18.000Z","body":"VM 'XOA' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0238568f-14cd-d391-ef3a-b81fbbf6976f","$type":"message"},"OpaqueRef:7f031326-7958-b232-4fbb-6d45ac14d2ef":{"uuid":"4bbb0ed9-ff40-6954-9735-fd8eab0e7297","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-11-12T08:33:46.000Z","body":"VM 'Windows XP SP3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7f031326-7958-b232-4fbb-6d45ac14d2ef","$type":"message"},"OpaqueRef:11452a2a-1ccd-e4df-25d8-ba99bba710db":{"uuid":"19492de2-e1d9-0e21-9ece-6c8a148bae0c","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-11-12T08:32:45.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:11452a2a-1ccd-e4df-25d8-ba99bba710db","$type":"message"},"OpaqueRef:2b0f4a40-36b7-9a57-5e9b-faf81c3f403c":{"uuid":"d3ce0e31-2506-2774-1095-3b352bf9798b","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-11-12T08:32:38.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2b0f4a40-36b7-9a57-5e9b-faf81c3f403c","$type":"message"},"OpaqueRef:2e7eb0b3-bede-7013-12ed-581db2e42944":{"uuid":"d981f2bb-7d85-a76a-aeb8-ab75a8d7e12b","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-11-11T14:19:22.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2e7eb0b3-bede-7013-12ed-581db2e42944","$type":"message"},"OpaqueRef:6b3acc78-c125-e030-249b-d105032b5359":{"uuid":"e8db66a2-d78a-400b-2a39-544099ff1ff8","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-08T15:38:49.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6b3acc78-c125-e030-249b-d105032b5359","$type":"message"},"OpaqueRef:6461845e-588e-096d-dfbd-a57623a28f30":{"uuid":"68d2f8b9-4422-03d2-dfdd-b43f265dd325","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-08T15:16:16.000Z","body":"VM 'Debian HVM' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6461845e-588e-096d-dfbd-a57623a28f30","$type":"message"},"OpaqueRef:6e029b76-9787-f18b-8ac0-7e6ddd08edf1":{"uuid":"790dad27-e026-0f8d-c7b2-8f3509fb2dbd","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-08T15:11:18.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6e029b76-9787-f18b-8ac0-7e6ddd08edf1","$type":"message"},"OpaqueRef:88676fdf-842f-d4d5-485d-6d4a663abc3d":{"uuid":"52152737-4d7c-6aa1-cb9d-de96c7625882","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-08T15:05:06.000Z","body":"VM 'Debian HVM' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:88676fdf-842f-d4d5-485d-6d4a663abc3d","$type":"message"},"OpaqueRef:c04a4bd8-a83e-e8db-f54b-280ccc426766":{"uuid":"d8a51dfd-0c6f-0e20-1835-88ad7e8b7dfc","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"e87f47c3-0057-69a2-72c8-6a5df168af43","timestamp":"2013-11-08T11:29:26.000Z","body":"VM 'Debian PV' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c04a4bd8-a83e-e8db-f54b-280ccc426766","$type":"message"},"OpaqueRef:d9aaef19-8970-bb8d-90c7-3a3df375f566":{"uuid":"bd308d75-416d-9de1-7f61-23ba42fe8522","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-07T08:36:17.000Z","body":"VM 'Debian HVM' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d9aaef19-8970-bb8d-90c7-3a3df375f566","$type":"message"},"OpaqueRef:58157b21-84e3-0638-8fe1-49b824e45b5d":{"uuid":"5282fb4e-e5e2-f9ee-e223-40f92b21b029","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1a66c720-8632-5ca3-1e4d-82569780a1b8","timestamp":"2013-11-07T08:24:26.000Z","body":"VM 'Debian HVM' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:58157b21-84e3-0638-8fe1-49b824e45b5d","$type":"message"},"OpaqueRef:385cd62e-f3d4-b2e2-9e14-5374d7d55ef7":{"uuid":"a39b300c-a2df-21d4-d9f2-04e6be074ce7","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-11-06T09:45:44.000Z","body":"VM 'XOA' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:385cd62e-f3d4-b2e2-9e14-5374d7d55ef7","$type":"message"},"OpaqueRef:d778cb83-3d7d-7645-f657-f19f6eee3ec3":{"uuid":"f464da24-7d6f-26ca-45fd-12431ea77daf","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-11-06T09:45:36.000Z","body":"VM 'Windows XP SP3' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d778cb83-3d7d-7645-f657-f19f6eee3ec3","$type":"message"},"OpaqueRef:9ddc8eb2-969f-ba56-757a-efd482da5ce9":{"uuid":"77c02850-0e0c-07b1-3d92-f4a14e5b39a5","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-11-04T10:05:50.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9ddc8eb2-969f-ba56-757a-efd482da5ce9","$type":"message"},"OpaqueRef:ac9563db-f4b8-4714-4d16-7c5fd5bdab18":{"uuid":"39bcfdd8-08e2-2eb6-68bb-e414314b369a","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-11-04T10:05:23.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ac9563db-f4b8-4714-4d16-7c5fd5bdab18","$type":"message"},"OpaqueRef:a4b57f35-b1cc-e8e2-c316-b522b3c11a4e":{"uuid":"dbe10dd8-7113-480c-2604-4316cdda3787","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-11-02T12:37:31.000Z","body":"VM 'Windows XP SP3' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a4b57f35-b1cc-e8e2-c316-b522b3c11a4e","$type":"message"},"OpaqueRef:fe4ec61f-03e6-d7ca-04bd-b21b5d3b14cf":{"uuid":"f4ee207e-a86b-a342-01a2-db207bff23d6","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-11-02T12:37:26.000Z","body":"VM 'XOA' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:fe4ec61f-03e6-d7ca-04bd-b21b5d3b14cf","$type":"message"},"OpaqueRef:50f02c5f-b2d0-a42a-a156-7905b78a918a":{"uuid":"9c353314-1ec1-c750-a666-3f86bc180a4a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"a440ca26-9ae2-6b86-f795-d5269b7af63d","timestamp":"2013-10-25T07:24:24.000Z","body":"VM 'kernel' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:50f02c5f-b2d0-a42a-a156-7905b78a918a","$type":"message"},"OpaqueRef:cdeda917-3496-c407-95fd-2ef63bf5e79e":{"uuid":"806eddc8-115e-a33b-6c9b-155d494529cb","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"a440ca26-9ae2-6b86-f795-d5269b7af63d","timestamp":"2013-10-25T06:44:44.000Z","body":"VM 'kernel' started on host: lab2 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cdeda917-3496-c407-95fd-2ef63bf5e79e","$type":"message"},"OpaqueRef:f6e02439-2d50-e647-c6ad-64849946075e":{"uuid":"8c2cd98a-6a2e-2489-21cd-0bbb53300a9a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9818876c-2a88-b3d4-da98-b63346bd2e80","timestamp":"2013-10-23T08:36:08.000Z","body":"VM 'XOA' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f6e02439-2d50-e647-c6ad-64849946075e","$type":"message"},"OpaqueRef:844844c6-5e82-4d9c-7ed9-01c46d46e67c":{"uuid":"a16a6f09-27de-7360-a07a-339db33fa991","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"ab57a213-6dfe-9037-7007-3ae0f35ae116","timestamp":"2013-10-11T12:18:14.000Z","body":"VM 'XOA' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:844844c6-5e82-4d9c-7ed9-01c46d46e67c","$type":"message"},"OpaqueRef:eaad760a-0e23-4e2b-3f96-2f65170a1dd7":{"uuid":"5933a3a1-6025-0d26-de2b-b792b3ec423f","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"45311604-a010-239c-b595-db2acf215f67","timestamp":"2013-10-10T11:23:51.000Z","body":"VM 'XOA' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:eaad760a-0e23-4e2b-3f96-2f65170a1dd7","$type":"message"},"OpaqueRef:a5296901-25c3-b600-7be7-16a20ba86600":{"uuid":"c9c42752-4433-e75b-0ef9-78eff7297c2c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"45311604-a010-239c-b595-db2acf215f67","timestamp":"2013-10-10T11:14:19.000Z","body":"VM 'XOA' started on host: lab1 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a5296901-25c3-b600-7be7-16a20ba86600","$type":"message"},"OpaqueRef:801add37-8c9b-19b8-89a3-8745918f16dd":{"uuid":"983e37d4-8d51-24a8-f6ff-6e6f2e822fc6","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-10-08T07:58:36.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:801add37-8c9b-19b8-89a3-8745918f16dd","$type":"message"},"OpaqueRef:68c8d0c6-e5a2-8ade-569a-dfc732e7994d":{"uuid":"ad0ba69b-8130-730e-bf5b-09afbc79ed1d","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T11:54:17.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:68c8d0c6-e5a2-8ade-569a-dfc732e7994d","$type":"message"},"OpaqueRef:ddb628ca-24f1-04d2-0b2c-9996aaab59f2":{"uuid":"e5054ddf-bc21-648c-7f32-02cff347682e","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T11:42:46.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ddb628ca-24f1-04d2-0b2c-9996aaab59f2","$type":"message"},"OpaqueRef:0e7044a7-542b-4dd9-65bc-cded0e41853a":{"uuid":"39dfc509-1754-b198-9ce6-9f3cc5fe3bf1","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T11:36:13.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0e7044a7-542b-4dd9-65bc-cded0e41853a","$type":"message"},"OpaqueRef:ee26daf0-2ff7-734e-438d-9a521aaaa0c5":{"uuid":"f31a73ab-3246-aa48-5ae7-fcb86a7ba7f1","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T10:13:46.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ee26daf0-2ff7-734e-438d-9a521aaaa0c5","$type":"message"},"OpaqueRef:40f8459f-1b6b-1625-1284-0f2878c3203d":{"uuid":"c3afc3e0-2e10-7bab-3ed9-5a144068f21c","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T10:06:29.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:40f8459f-1b6b-1625-1284-0f2878c3203d","$type":"message"},"OpaqueRef:739ca434-6dca-b633-0097-b3f3183150a7":{"uuid":"e6c3d3bf-89a9-bffb-288a-1ab6c7043517","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T08:05:51.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:739ca434-6dca-b633-0097-b3f3183150a7","$type":"message"},"OpaqueRef:cf655e45-c8c7-bdb9-e56c-5b67d6952f15":{"uuid":"9f46ee56-2461-edcc-db5d-66abddc05bc6","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T07:46:21.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:cf655e45-c8c7-bdb9-e56c-5b67d6952f15","$type":"message"},"OpaqueRef:3e33b140-f7e8-7dcc-3475-97dcc2fbfb5b":{"uuid":"8be7d7d0-105f-0ba5-dc09-9d3c55e6f307","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T07:38:25.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3e33b140-f7e8-7dcc-3475-97dcc2fbfb5b","$type":"message"},"OpaqueRef:8f3e2923-e690-e859-4f9e-a3e711a1e230":{"uuid":"fb1edbca-c2ee-6db7-cae3-077059eb6913","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T07:30:53.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8f3e2923-e690-e859-4f9e-a3e711a1e230","$type":"message"},"OpaqueRef:ed7b1960-1ab7-4f47-8ef1-7a7769e09207":{"uuid":"c08491a9-7526-6abc-d6e9-ad6cc4e40627","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T07:21:34.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ed7b1960-1ab7-4f47-8ef1-7a7769e09207","$type":"message"},"OpaqueRef:6a0c4183-2f95-661f-9b19-0df0015867ca":{"uuid":"70da7dc7-d644-6910-2371-caac2a293ccd","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T07:15:33.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6a0c4183-2f95-661f-9b19-0df0015867ca","$type":"message"},"OpaqueRef:8d04b3fa-e81d-c6ae-d072-bd3a1ea22189":{"uuid":"537ff7f6-fe35-2d0f-4447-4ba3e8c23ce6","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T07:06:26.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8d04b3fa-e81d-c6ae-d072-bd3a1ea22189","$type":"message"},"OpaqueRef:dada1bd4-d7ed-429f-0a1a-585a3bfbf7e6":{"uuid":"2e78cdc2-c929-4496-2a92-38221fccdc03","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T07:03:01.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dada1bd4-d7ed-429f-0a1a-585a3bfbf7e6","$type":"message"},"OpaqueRef:a5648ca1-b37a-0765-9192-ebfb9ff376e8":{"uuid":"409ec1a6-5b23-fe6b-b69b-d33690fe1987","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T06:58:56.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a5648ca1-b37a-0765-9192-ebfb9ff376e8","$type":"message"},"OpaqueRef:78c09b42-ad6f-0e66-0349-80b45264120d":{"uuid":"079b4300-41b3-7b18-82fc-574a9bdcf859","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T06:55:40.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:78c09b42-ad6f-0e66-0349-80b45264120d","$type":"message"},"OpaqueRef:9c657a2b-560c-2050-014a-20e8cf5bd235":{"uuid":"7cbae2b9-e1c3-4f7f-ba2b-813f130dc724","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-04T06:48:27.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9c657a2b-560c-2050-014a-20e8cf5bd235","$type":"message"},"OpaqueRef:b4453eae-c7da-5869-2a3d-6493807d5f2e":{"uuid":"88892c1b-b34b-8a61-0276-eced63ab9b91","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-10-03T13:24:52.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b4453eae-c7da-5869-2a3d-6493807d5f2e","$type":"message"},"OpaqueRef:746e90ea-80d4-fc3e-614f-f88e37e4d7ae":{"uuid":"60cc3583-c667-a324-9265-74213d985110","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-10-03T12:45:33.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:746e90ea-80d4-fc3e-614f-f88e37e4d7ae","$type":"message"},"OpaqueRef:7ceac6bf-f1b3-7bb2-ce58-8451b18ea1ce":{"uuid":"8a1e2f06-c6ad-5415-136f-c317a2f57da7","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-10-03T12:37:57.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7ceac6bf-f1b3-7bb2-ce58-8451b18ea1ce","$type":"message"},"OpaqueRef:4a4b1c7b-b85f-96aa-b9de-c7432dbe9487":{"uuid":"53c5be13-ddcb-a5e8-5596-dffc7f8f426f","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-10-03T12:32:44.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a4b1c7b-b85f-96aa-b9de-c7432dbe9487","$type":"message"},"OpaqueRef:41f1fb53-566f-e330-98d7-08ba8ded3d1e":{"uuid":"73c276cc-61b4-2876-7726-fde8234052fb","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-10-03T11:58:32.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:41f1fb53-566f-e330-98d7-08ba8ded3d1e","$type":"message"},"OpaqueRef:7e128058-8cb6-4336-b1de-5db16fd8b168":{"uuid":"1f2d2a25-2728-cfde-ae84-b0dea9142aae","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-10-03T11:15:17.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:7e128058-8cb6-4336-b1de-5db16fd8b168","$type":"message"},"OpaqueRef:1d50d25b-41f6-ffd3-5410-0de4fbed8543":{"uuid":"76c050fc-7724-2899-cb2d-d432c6e699e9","name":"POOL_MASTER_TRANSITION","priority":"4","cls":"Host","obj_uuid":"095adc5f-4abe-4142-bc9b-98e2d9398eaa","timestamp":"2013-10-02T13:30:00.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1d50d25b-41f6-ffd3-5410-0de4fbed8543","$type":"message"},"OpaqueRef:69d3511e-ec73-69c9-819e-14b85236059d":{"uuid":"abde2dec-0a5e-e643-6adc-ddfab62e4ccb","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"9c791ab2-9c6f-b718-4cef-128effe7e435","timestamp":"2013-10-01T11:54:56.000Z","body":"VM 'XOA' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:69d3511e-ec73-69c9-819e-14b85236059d","$type":"message"},"OpaqueRef:9900dede-625b-2b21-9bfb-8ee7e7157456":{"uuid":"4a8582cc-b9a2-a18b-8cec-490f15274c93","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-10-01T11:15:22.000Z","body":"VM 'Windows XP SP3' started on host: lab2 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9900dede-625b-2b21-9bfb-8ee7e7157456","$type":"message"},"OpaqueRef:a665db24-5f86-7079-6d0d-8e332ad287b9":{"uuid":"53bee38e-1f1b-48fc-4046-b902d3aca8af","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-08-29T06:58:01.000Z","body":"VM 'Windows XP SP3' started on host: lab2 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a665db24-5f86-7079-6d0d-8e332ad287b9","$type":"message"},"OpaqueRef:a1543476-d781-4d6f-5072-85ebef1d4911":{"uuid":"63cab6b1-2274-d95b-30c2-766b3e8902b1","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-08-20T07:47:34.000Z","body":"VM 'Windows XP SP3' started on host: lab2 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a1543476-d781-4d6f-5072-85ebef1d4911","$type":"message"},"OpaqueRef:df07d60e-8a03-6979-3e61-4460bc8197b3":{"uuid":"72310bf4-0ae0-f0d4-c5d9-a176435be75b","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"66f8c588-c5ed-05ff-231e-b9013eed93f7","timestamp":"2013-09-11T15:35:01.000Z","body":"VM 'XOA' started on host: lab2 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:df07d60e-8a03-6979-3e61-4460bc8197b3","$type":"message"},"OpaqueRef:2c460c86-2e1c-cd0d-cbaf-95bf771af2bc":{"uuid":"b7764527-561b-df5e-12b5-b892d5e8d9d8","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"66f8c588-c5ed-05ff-231e-b9013eed93f7","timestamp":"2013-09-11T14:49:44.000Z","body":"VM 'XOA' started on host: lab2 (uuid: 095adc5f-4abe-4142-bc9b-98e2d9398eaa)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2c460c86-2e1c-cd0d-cbaf-95bf771af2bc","$type":"message"},"OpaqueRef:6b04d423-8991-c838-d981-aca1b9c7be7d":{"uuid":"26117a84-a3eb-5d30-9dee-b5e37c22bad6","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f18c19f8-daad-5c5e-08a9-e5e47306a34a","timestamp":"2013-08-16T07:54:18.000Z","body":"VM 'XOA' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6b04d423-8991-c838-d981-aca1b9c7be7d","$type":"message"},"OpaqueRef:a99badbe-75fa-8bc8-22b3-78c616873b62":{"uuid":"8749a5a7-1e38-c5ed-9884-aec2f7cf9a80","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f18c19f8-daad-5c5e-08a9-e5e47306a34a","timestamp":"2013-08-15T08:33:42.000Z","body":"VM 'XOA' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a99badbe-75fa-8bc8-22b3-78c616873b62","$type":"message"},"OpaqueRef:4147a60c-2b41-4dc7-491d-3470466abbc7":{"uuid":"2d936623-40ba-0749-2e70-3dc0df3e83c9","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"f18c19f8-daad-5c5e-08a9-e5e47306a34a","timestamp":"2013-08-14T12:50:19.000Z","body":"VM 'XOA' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4147a60c-2b41-4dc7-491d-3470466abbc7","$type":"message"},"OpaqueRef:2f688e5b-4ee0-510e-dc1e-875eddc92163":{"uuid":"5caafcad-9391-d7db-5978-bbe880819bdc","name":"PBD_PLUG_FAILED_ON_SERVER_START","priority":"3","cls":"Host","obj_uuid":"cc3e7067-e18a-4bdf-8a8c-67922c64a75b","timestamp":"2013-08-14T10:25:55.000Z","body":"","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2f688e5b-4ee0-510e-dc1e-875eddc92163","$type":"message"},"OpaqueRef:300a2868-2b8a-4f0c-788d-4e2ba4a160da":{"uuid":"b4a1d4c2-bb13-fef7-499e-3a1fbaf749ef","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"70e40596-a807-9549-95ac-ea826c53ddf2","timestamp":"2013-08-14T10:05:01.000Z","body":"VM 'XOA' shutdown forcibly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:300a2868-2b8a-4f0c-788d-4e2ba4a160da","$type":"message"},"OpaqueRef:323297f9-4a0b-c517-1ff7-eacad80fc796":{"uuid":"0c3bfad6-a874-5f46-4978-1eec740f140e","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-08-14T10:01:45.000Z","body":"VM 'test' shutdown forcibly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:323297f9-4a0b-c517-1ff7-eacad80fc796","$type":"message"},"OpaqueRef:dd735a0f-d2fd-9475-7dd3-b387251f4426":{"uuid":"d97eb230-f9ee-f127-89e5-aac8a5af834c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"70e40596-a807-9549-95ac-ea826c53ddf2","timestamp":"2013-08-08T08:21:32.000Z","body":"VM 'XOA' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dd735a0f-d2fd-9475-7dd3-b387251f4426","$type":"message"},"OpaqueRef:d5ab7d13-0ebb-5805-b767-608cb7737690":{"uuid":"2157c08a-c0a9-6342-9178-cdb0f3c59aca","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"2631de09-09cc-9514-79e5-fa9095af6c80","timestamp":"2013-08-08T06:17:20.000Z","body":"VM 'XOA' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d5ab7d13-0ebb-5805-b767-608cb7737690","$type":"message"},"OpaqueRef:84a7efe6-2a37-d4be-5f9a-aa66adfe3104":{"uuid":"536bf83b-9282-47f3-ed4a-36860dc0ea04","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"3a452226-ea62-5028-ed31-13bb0ec6307d","timestamp":"2013-08-08T05:51:11.000Z","body":"VM 'XO appliance' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:84a7efe6-2a37-d4be-5f9a-aa66adfe3104","$type":"message"},"OpaqueRef:a4fd777c-f417-23e9-8338-30d8097a8430":{"uuid":"3ead4fe1-93bd-14ca-1b22-326f62eed24a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"3a452226-ea62-5028-ed31-13bb0ec6307d","timestamp":"2013-08-06T12:02:50.000Z","body":"VM 'XO appliance' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a4fd777c-f417-23e9-8338-30d8097a8430","$type":"message"},"OpaqueRef:72360954-3629-1e09-b1bf-b819732bddfd":{"uuid":"848d1ebc-e0cd-8ea0-24a5-9f5716f0fde8","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"3a452226-ea62-5028-ed31-13bb0ec6307d","timestamp":"2013-08-06T11:56:14.000Z","body":"VM 'XO appliance' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:72360954-3629-1e09-b1bf-b819732bddfd","$type":"message"},"OpaqueRef:6e161f6f-df2b-195f-be46-530884a2c24a":{"uuid":"221594b3-b0b8-8184-f60c-c045bccdf0c4","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"3a452226-ea62-5028-ed31-13bb0ec6307d","timestamp":"2013-08-06T11:11:35.000Z","body":"VM 'XO appliance' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6e161f6f-df2b-195f-be46-530884a2c24a","$type":"message"},"OpaqueRef:3a8a42d6-f5b3-1479-3ad6-2c7caed94459":{"uuid":"b079dee6-81a2-053e-8b86-02bae8ed0b90","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:32:12.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3a8a42d6-f5b3-1479-3ad6-2c7caed94459","$type":"message"},"OpaqueRef:f3492f88-e0b0-405a-5723-f83429e016c5":{"uuid":"53795401-2175-0254-3bf9-e7b006c12667","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:26:14.000Z","body":"VM 'test' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f3492f88-e0b0-405a-5723-f83429e016c5","$type":"message"},"OpaqueRef:a08f1c9a-34de-5441-b847-18533244910d":{"uuid":"dab266b4-e304-6691-5d42-6970075dc856","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:25:49.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a08f1c9a-34de-5441-b847-18533244910d","$type":"message"},"OpaqueRef:b857ac11-36a0-38e4-4d9c-13586e381f7a":{"uuid":"4214a9f9-3966-dfd7-3926-54bb577ac17b","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:25:08.000Z","body":"VM 'test' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:b857ac11-36a0-38e4-4d9c-13586e381f7a","$type":"message"},"OpaqueRef:33d58ecd-d2a4-f63a-46bb-307a7c7762a6":{"uuid":"3d17adbd-c114-f6ff-5d67-8adae2d324a2","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:24:40.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:33d58ecd-d2a4-f63a-46bb-307a7c7762a6","$type":"message"},"OpaqueRef:ecc7b91d-6f50-94c6-6f51-2d609dc3ebe7":{"uuid":"9390e6f1-b200-3140-4315-76110a4bb559","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:22:44.000Z","body":"VM 'test' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ecc7b91d-6f50-94c6-6f51-2d609dc3ebe7","$type":"message"},"OpaqueRef:5f34bfc5-f92f-9830-b3e9-06367ef56a77":{"uuid":"c9ed4668-e8b9-0333-a18a-d935fbcf6417","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:22:07.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:5f34bfc5-f92f-9830-b3e9-06367ef56a77","$type":"message"},"OpaqueRef:230d01c6-3e25-b877-9e35-13a707335e23":{"uuid":"81395214-b896-a323-d233-16b7ad5b5cfc","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:21:29.000Z","body":"VM 'test' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:230d01c6-3e25-b877-9e35-13a707335e23","$type":"message"},"OpaqueRef:226e9274-77d6-9805-a0f3-396d1e54fe72":{"uuid":"fefb2c24-39f5-3728-4c50-64f28ca63fc3","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:20:09.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:226e9274-77d6-9805-a0f3-396d1e54fe72","$type":"message"},"OpaqueRef:15f61c91-5ac8-6234-78bb-2edbdcf9164f":{"uuid":"16da2bb6-4a2d-f627-da52-d1f1e205f11f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:15:43.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:15f61c91-5ac8-6234-78bb-2edbdcf9164f","$type":"message"},"OpaqueRef:9a645810-7308-c296-d9df-cc5d91f8f2a4":{"uuid":"36eb8e3d-bb82-921c-c17f-9d3bb84b5d69","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:13:24.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:9a645810-7308-c296-d9df-cc5d91f8f2a4","$type":"message"},"OpaqueRef:20aadafb-47c8-0796-e3c2-4e497bcb0205":{"uuid":"65aee145-8808-4555-3f8d-e265860ff1d3","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T14:10:49.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:20aadafb-47c8-0796-e3c2-4e497bcb0205","$type":"message"},"OpaqueRef:3f77ad7a-de22-0b05-4005-7cfdc5d8bc86":{"uuid":"7274081d-296d-540a-ba68-c341bda31a75","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T13:29:49.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3f77ad7a-de22-0b05-4005-7cfdc5d8bc86","$type":"message"},"OpaqueRef:1b04b4db-3622-4d54-e8fa-a2f6661c6e43":{"uuid":"ba16b5bf-46d8-0f95-16b5-1318f1aee8e1","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-31T12:14:47.000Z","body":"VM 'test' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:1b04b4db-3622-4d54-e8fa-a2f6661c6e43","$type":"message"},"OpaqueRef:c0b26952-1a46-9dfb-a826-78cbfeaa1b00":{"uuid":"768b3bac-f7e6-a37a-a99c-71e0fac8ff57","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"204c6931-1101-4ca8-4d19-02bbf66e51e2","timestamp":"2013-07-30T13:27:35.000Z","body":"VM 'test' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c0b26952-1a46-9dfb-a826-78cbfeaa1b00","$type":"message"},"OpaqueRef:0c565205-db69-eb0f-b80b-a8e356ae43ae":{"uuid":"d3c5e8c1-dd01-1004-6339-420d3876dd11","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-07-29T13:13:42.000Z","body":"VM 'vm1' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0c565205-db69-eb0f-b80b-a8e356ae43ae","$type":"message"},"OpaqueRef:6f9b4c87-c7ba-1a87-073d-569051f307a8":{"uuid":"869c2cb7-6e53-6946-a998-cb1f3ee2d3da","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-07-29T07:14:52.000Z","body":"VM 'vm1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:6f9b4c87-c7ba-1a87-073d-569051f307a8","$type":"message"},"OpaqueRef:ebead5cf-4a48-ad28-4241-ad5869fa9752":{"uuid":"e37be86c-8bd8-7a96-2ac6-76bd8ee50ab7","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-07-26T08:46:18.000Z","body":"VM 'vm1' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ebead5cf-4a48-ad28-4241-ad5869fa9752","$type":"message"},"OpaqueRef:443c4e46-d98a-87d6-92f5-c35bb5b65a5c":{"uuid":"611bcf34-9209-eba0-8f91-dc6ac98f2e8a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-07-26T08:37:52.000Z","body":"VM 'vm1' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:443c4e46-d98a-87d6-92f5-c35bb5b65a5c","$type":"message"},"OpaqueRef:0f955091-d6e6-ed3e-2bbe-94d914e6efbe":{"uuid":"d87c03a6-5fce-0d9c-98ea-ae8864ff14f8","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-07-26T08:37:36.000Z","body":"VM 'vm1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0f955091-d6e6-ed3e-2bbe-94d914e6efbe","$type":"message"},"OpaqueRef:08093780-5d87-46f4-400d-fc8406bdd6c2":{"uuid":"f16f51f6-6466-9ae2-7248-f151cb82ad06","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-07-26T08:36:44.000Z","body":"VM 'vm1' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:08093780-5d87-46f4-400d-fc8406bdd6c2","$type":"message"},"OpaqueRef:79f9e82b-1a0e-75b7-efc5-8689a4cd4aed":{"uuid":"fac6b162-e59b-fb0b-c4f7-af46f648daa0","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-07-26T08:36:38.000Z","body":"VM 'vm1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:79f9e82b-1a0e-75b7-efc5-8689a4cd4aed","$type":"message"},"OpaqueRef:157ed2d3-16fa-8cac-a504-d3006891241d":{"uuid":"653ac040-af86-67ff-47d1-e7e8fce10f29","name":"VM_REBOOTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-07-16T13:33:59.000Z","body":"VM 'Windows XP SP3' rebooted cleanly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:157ed2d3-16fa-8cac-a504-d3006891241d","$type":"message"},"OpaqueRef:dae9fbe3-a709-3433-e8e3-491b3a79df84":{"uuid":"0407ba31-6ef5-4dc5-2214-6ee995829677","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"11ffe528-fc6e-4540-c680-2789799138a7","timestamp":"2013-07-04T14:56:54.000Z","body":"VM 'authmdev' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:dae9fbe3-a709-3433-e8e3-491b3a79df84","$type":"message"},"OpaqueRef:279e9aed-7d9e-13bc-e4d2-d477abbf9f6a":{"uuid":"660f4a53-3186-c2f6-d7e2-9fd5fc09b583","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"4f4d380c-a85f-de3a-9872-209dfcceee54","timestamp":"2013-07-04T14:56:09.000Z","body":"VM 'vm2' shutdown forcibly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:279e9aed-7d9e-13bc-e4d2-d477abbf9f6a","$type":"message"},"OpaqueRef:00c9f03d-d172-fe89-6a91-a9b4f34b8093":{"uuid":"e19fa79f-a65c-a9c2-fa27-f8cbc5649a1d","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1b227ddc-d15f-0c60-d543-14e74934a0a9","timestamp":"2013-07-04T10:57:34.000Z","body":"VM 'auths1' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:00c9f03d-d172-fe89-6a91-a9b4f34b8093","$type":"message"},"OpaqueRef:f1edfdf9-d111-9d5c-2dd2-1d205f2f37b0":{"uuid":"c9871110-597d-e034-f468-07ca948ebf84","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"1b227ddc-d15f-0c60-d543-14e74934a0a9","timestamp":"2013-07-04T10:09:27.000Z","body":"VM 'auths1' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:f1edfdf9-d111-9d5c-2dd2-1d205f2f37b0","$type":"message"},"OpaqueRef:2243e321-e4bd-50dd-1451-f329df240517":{"uuid":"47a2175f-7c60-4e7d-8fbf-db4441272ac3","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"4f4d380c-a85f-de3a-9872-209dfcceee54","timestamp":"2013-06-27T06:20:57.000Z","body":"VM 'vm2' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:2243e321-e4bd-50dd-1451-f329df240517","$type":"message"},"OpaqueRef:ab16dfa7-3c86-56c3-038c-c6bcfe0b64c1":{"uuid":"8e5b0e13-6584-4534-641e-26adb20ee6c7","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-06-27T06:20:54.000Z","body":"VM 'vm1' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:ab16dfa7-3c86-56c3-038c-c6bcfe0b64c1","$type":"message"},"OpaqueRef:c0a313e4-7f6a-a3f4-b4d7-5134b35dda47":{"uuid":"66db65e7-56da-f97d-964e-79a214afdf0c","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-06-27T06:20:50.000Z","body":"VM 'Windows XP SP3' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:c0a313e4-7f6a-a3f4-b4d7-5134b35dda47","$type":"message"},"OpaqueRef:af840b26-91b6-56aa-e2a0-266ce7dd411b":{"uuid":"86627224-51b2-c18b-b1e9-cfa18863d66f","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-06-27T06:09:37.000Z","body":"VM 'vm1' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:af840b26-91b6-56aa-e2a0-266ce7dd411b","$type":"message"},"OpaqueRef:e6a0aa45-f8e0-ae7d-7b3a-d76b95a03c95":{"uuid":"f523eaa3-4125-e3c8-6cb5-5291d7d7203a","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"4f4d380c-a85f-de3a-9872-209dfcceee54","timestamp":"2013-06-25T12:04:21.000Z","body":"VM 'vm2' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:e6a0aa45-f8e0-ae7d-7b3a-d76b95a03c95","$type":"message"},"OpaqueRef:a073f53c-557a-fd67-878d-b3a881ebd935":{"uuid":"49e33a7b-b040-83ad-972a-d4b18931bb25","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"4f4d380c-a85f-de3a-9872-209dfcceee54","timestamp":"2013-06-25T12:02:33.000Z","body":"VM 'vm2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:a073f53c-557a-fd67-878d-b3a881ebd935","$type":"message"},"OpaqueRef:337346ca-9871-b2c7-2986-074164782ad5":{"uuid":"0ba89c39-127e-b4a1-0d8c-273939348160","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-06-27T06:09:47.000Z","body":"VM 'Windows XP SP3' shutdown forcibly","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:337346ca-9871-b2c7-2986-074164782ad5","$type":"message"},"OpaqueRef:88d637b9-5561-807f-28e6-ce66b4d71dc7":{"uuid":"9e6865c5-36bf-7f1e-d8c2-10b533b2ddf0","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8635a18a-be54-3ddc-fee4-0b6818047579","timestamp":"2013-06-25T10:00:19.000Z","body":"VM 'Windows XP SP3' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:88d637b9-5561-807f-28e6-ce66b4d71dc7","$type":"message"},"OpaqueRef:0241d2be-fcda-64b7-b95d-550399f22000":{"uuid":"b1264bb9-22a8-c07a-98b6-b4ca69ed65b0","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"4f4d380c-a85f-de3a-9872-209dfcceee54","timestamp":"2013-06-18T12:57:10.000Z","body":"VM 'vm2' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:0241d2be-fcda-64b7-b95d-550399f22000","$type":"message"},"OpaqueRef:4a3aebd9-e670-c796-4938-e29e178f1959":{"uuid":"8f223564-3b67-716a-a36d-b3165d35d54f","name":"VM_STARTED","priority":"5","cls":"VM","obj_uuid":"8896cee3-23b2-3548-769f-a44104883500","timestamp":"2013-06-18T12:54:33.000Z","body":"VM 'vm1' started on host: lab1 (uuid: cc3e7067-e18a-4bdf-8a8c-67922c64a75b)","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:4a3aebd9-e670-c796-4938-e29e178f1959","$type":"message"},"OpaqueRef:3962ad4b-18e9-53ce-ff72-b2ef3d6692ec":{"uuid":"132e8341-6349-40be-e080-8f64e2056749","name":"VM_SHUTDOWN","priority":"5","cls":"VM","obj_uuid":"4f4d380c-a85f-de3a-9872-209dfcceee54","timestamp":"2013-06-27T06:09:42.000Z","body":"VM 'vm2' shutdown","$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:3962ad4b-18e9-53ce-ff72-b2ef3d6692ec","$type":"message"},"OpaqueRef:8add8253-2f16-26be-ab8f-9eba5aaee791":{"uuid":"2d0f1346-6202-034b-85d1-81991c826d36","class_name":"Display controller","vendor_name":"Intel Corporation","device_name":"3rd Gen Core processor Graphics Controller","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","pci_id":"0000:00:02.0","dependencies":[],"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:8add8253-2f16-26be-ab8f-9eba5aaee791","$type":"PCI"},"OpaqueRef:426e228c-67f9-2fd2-e716-2821c2da7053":{"uuid":"a8f638ee-c1bd-ce5c-2233-5596a831eb5b","class_name":"Display controller","vendor_name":"Intel Corporation","device_name":"Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","pci_id":"0000:00:02.0","dependencies":[],"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:426e228c-67f9-2fd2-e716-2821c2da7053","$type":"PCI"},"OpaqueRef:d004d3ba-4421-48be-ffb8-59284f08024e":{"uuid":"bba7508c-8410-9754-c180-43e81e359b60","PCI":"OpaqueRef:426e228c-67f9-2fd2-e716-2821c2da7053","GPU_group":"OpaqueRef:44de8f70-a106-38d7-49e8-0b01622d221a","host":"OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:d004d3ba-4421-48be-ffb8-59284f08024e","$type":"PGPU"},"OpaqueRef:304c2450-a24a-7797-d725-5497a0c99e80":{"uuid":"a5229d51-3434-c74a-df6b-548a6880552f","PCI":"OpaqueRef:8add8253-2f16-26be-ab8f-9eba5aaee791","GPU_group":"OpaqueRef:44de8f70-a106-38d7-49e8-0b01622d221a","host":"OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692","other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:304c2450-a24a-7797-d725-5497a0c99e80","$type":"PGPU"},"OpaqueRef:44de8f70-a106-38d7-49e8-0b01622d221a":{"uuid":"b129dadc-7b5e-5717-bc37-9fcd375456c0","name_label":"Group of Intel Corporation 3rd Gen Core processor Graphics Controller GPUs","name_description":"","PGPUs":["OpaqueRef:d004d3ba-4421-48be-ffb8-59284f08024e","OpaqueRef:304c2450-a24a-7797-d725-5497a0c99e80"],"VGPUs":[],"GPU_types":["8086/0152"],"other_config":{},"$pool":"313624ab-0958-bb1e-45b5-7556a463a10b","$poolRef":"OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e","$ref":"OpaqueRef:44de8f70-a106-38d7-49e8-0b01622d221a","$type":"GPU_group"}} \ No newline at end of file diff --git a/src/spec.spec.coffee b/src/spec.spec.coffee deleted file mode 100644 index 349b50159..000000000 --- a/src/spec.spec.coffee +++ /dev/null @@ -1,753 +0,0 @@ -{expect: $expect} = require 'chai' - -$sinon = require 'sinon' - -#--------------------------------------------------------------------- - -{$MappedCollection} = require './MappedCollection' - -# Helpers for dealing with fibers. -{$coroutine} = require './fibers-utils' - -#===================================================================== - -describe 'spec', -> - - collection = null - before $coroutine -> - # Creates the collection. - collection = new $MappedCollection() - - # Loads the spec. - (require './spec').call collection - - # Loads the mockup data. - collection.set (require './spec.spec-data') - - #console.log collection.get() - - it 'xo', -> - xo = collection.get 'xo' - - #console.log xo - - $expect(xo).to.be.an 'object' - - $expect(xo.type).to.equal 'xo' - - $expect(xo.pools).to.have.members [ - 'OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e' - ] - - $expect(xo.$CPUs).to.equal 8 - - $expect(xo.$vCPUs).to.equal 10 - - $expect(xo.$memory).to.be.an 'object' - $expect(xo.$memory.usage).to.equal 15185723392 - $expect(xo.$memory.size).to.equal 33532379136 - - UUIDsToKeys = {} - UUIDsToKeys[obj.UUID] = "#{obj.ref}" for obj in collection.get() when obj.UUID? - $expect(xo.$UUIDsToKeys).to.deep.equal UUIDsToKeys - - it 'pool', -> - pool = collection.get 'OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e' - - #console.log pool - - $expect(pool).to.be.an 'object' - - $expect(pool.type).to.equal 'pool' - - $expect(pool.name_label).to.equal 'Lab Pool' - - $expect(pool.name_description).to.equal 'Vates dev pool at our HQ' - - $expect(pool.tags).to.have.members [] - - $expect(pool.SRs).to.have.members [ - 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee' - 'OpaqueRef:6637b7d7-9e5c-f331-c7e4-a7f68f77a047' - 'OpaqueRef:557155b2-f092-3417-f509-7ee35b1d42da' - ] - - $expect(pool.default_SR).to.equal 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee' - - $expect(pool.HA_enabled).to.be.false - - $expect(pool.hosts).to.have.members [ - 'OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692' - 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145' - ] - - $expect(pool.master).to.equal 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145' - - $expect(pool.networks).to.have.members [ - 'OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0' - 'OpaqueRef:4e265829-7517-3520-6a97-56b6ac0730c9' - 'OpaqueRef:16013d48-b9eb-84c0-0e62-d809211b0632' - ] - - $expect(pool.templates).to.have.members [ - 'OpaqueRef:f81c6db6-4227-55a5-0c2f-b670ca5d8d3f' - 'OpaqueRef:f449b8ec-ac86-1b6d-2347-37ec36c41bc5' - 'OpaqueRef:f02a3c19-447b-c618-fb51-a9cde79be17c' - 'OpaqueRef:ee2e2c00-8011-4847-ba7e-c288d5fb01f5' - 'OpaqueRef:ebc96e49-11d4-471d-c21f-625a95c34ff9' - 'OpaqueRef:e9fb38c8-acc3-dbb8-cc6f-f1f89b03c1ae' - 'OpaqueRef:e803bc1b-d3be-b95f-f3cc-a26a174ec93c' - 'OpaqueRef:e373c644-3576-985e-9c8f-67062c81d0d2' - 'OpaqueRef:e3035b8b-cd27-3e7c-ecbf-54a18a2da59e' - 'OpaqueRef:d99a46bf-1b68-072c-00db-444d099466cd' - 'OpaqueRef:d45b3989-7350-5166-eeaa-7b789a32addd' - 'OpaqueRef:d18c965e-0cef-48b0-2f8d-d48ef6663c32' - 'OpaqueRef:d15de0db-1dc5-2a00-331a-c0f7d3c2e123' - 'OpaqueRef:cfe620f9-5c68-0f35-ce9f-8f5227fda1c8' - 'OpaqueRef:cb865487-9139-3fbc-4aac-68abdb663925' - 'OpaqueRef:c8bf31d6-9888-4256-1547-c722016a0079' - 'OpaqueRef:c651901b-0944-be6b-aabf-a87d9a037edd' - 'OpaqueRef:c5a9e2de-1916-7f4c-aa2a-ce95d138032b' - 'OpaqueRef:c22bce1f-16a0-7745-179d-dcbd5c5deab3' - 'OpaqueRef:be6abc7d-dd7a-5ee6-9c95-8e562a69d992' - 'OpaqueRef:b9587bb6-6efe-0c71-e01c-2c750c9ab774' - 'OpaqueRef:b6f58482-8b60-b3b4-2a01-0d6113411bf2' - 'OpaqueRef:ad21fbbb-6cf9-e6ca-c415-1f428f20da1f' - 'OpaqueRef:aa2d04ec-0512-c128-8820-c8ecde93baa4' - 'OpaqueRef:a247a02f-8909-5044-64a0-82460b25e740' - 'OpaqueRef:9d28dba9-aee6-cafd-06af-54ebdfb1c271' - 'OpaqueRef:9796cc01-6640-211f-09f9-fee94f9cd720' - 'OpaqueRef:922b3a98-f238-4cea-8b75-c38e90ac11ee' - 'OpaqueRef:8e720505-e75b-eda3-3b14-fd1471890cc1' - 'OpaqueRef:8e3211dc-fdaf-22c7-41b2-c3a892529679' - 'OpaqueRef:89919714-1184-ce4b-3cb5-67059640b3a7' - 'OpaqueRef:892768c0-4d15-769f-e760-b781a0291ddb' - 'OpaqueRef:838ff163-ae6e-d98e-9cef-4d783f81dcb0' - 'OpaqueRef:8079d64b-fe87-0ecf-e558-7b607b0e1524' - 'OpaqueRef:773d92c9-898b-bc25-a50d-d868bbf933a4' - 'OpaqueRef:770d2193-ab69-4fc3-c462-7f75a79d497c' - 'OpaqueRef:75441e00-55df-85f5-1780-731110df91de' - 'OpaqueRef:6ee1cc24-ebbb-b02a-88b0-a921c7a5f217' - 'OpaqueRef:6b5be573-b116-6238-9cff-bde0658d6f18' - 'OpaqueRef:6a09a6de-e778-a474-4ebd-f617db5b5d5e' - 'OpaqueRef:616942c0-1e1b-e733-3c4c-7236fd3de158' - 'OpaqueRef:5e93cf73-a212-a83f-d3f9-a539be98d320' - 'OpaqueRef:56af2e14-d4bb-20e9-421b-00d75dfb89f2' - 'OpaqueRef:5059cc2d-b414-97eb-6aac-ce816b72b2bd' - 'OpaqueRef:4a43ad28-b809-2c8f-aa24-70d8bd4954f2' - 'OpaqueRef:466d7dc3-f2df-8c8d-685d-eef256fe2b43' - 'OpaqueRef:4347e9d6-7faf-90e4-4f5f-d513cf44b3cc' - 'OpaqueRef:3c4558e8-ed88-ce88-81a9-111ac2cc56d6' - 'OpaqueRef:3b97e45b-aa4e-d175-95e5-e95ceefa0b6b' - 'OpaqueRef:2e3b5ada-5083-87b1-d6fb-aaa0e5bd862d' - 'OpaqueRef:2b6e3248-52b0-85d1-7415-4f91a0a90a3a' - 'OpaqueRef:2a838052-3aa3-d09d-1eae-8293a565fef5' - 'OpaqueRef:2a092eee-7c6a-058b-0368-b37362328678' - 'OpaqueRef:2968283f-8656-6e31-816c-e96325e66ebf' - 'OpaqueRef:27ad4e06-a7b2-20a2-4fd9-7f1b54fdc5a2' - 'OpaqueRef:217d930f-8e65-14e6-eb20-63d55158093f' - 'OpaqueRef:20377446-2388-5c8f-d3f2-6e9c883c61d9' - 'OpaqueRef:201cf416-bfd0-00d3-a4d2-b19226c43c82' - 'OpaqueRef:1ed4ee31-56e0-98da-65d4-00c776716b9c' - 'OpaqueRef:1c0b590d-563b-5061-a253-f98535ab8389' - 'OpaqueRef:1be0fe3b-1944-06db-3734-b6bb888cfe78' - 'OpaqueRef:12d0dfc0-ce63-a072-3cd0-ccba7bd3c200' - 'OpaqueRef:039273c3-b4b2-5c68-63e4-c5610a738fe3' - 'OpaqueRef:030314a2-0909-9e7a-418a-9f38746aaf0c', - ] - - $expect(pool.VMs).to.have.members [ - 'OpaqueRef:d4fa8fba-ec86-5928-a1bb-dd78b6fb5944' - 'OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861' - 'OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb' - ] - - $expect(pool.$running_hosts).to.have.members [ - 'OpaqueRef:cd0f68c5-5245-5ae8-f0e1-324e2201c692' - 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145' - ] - - $expect(pool.$running_VMs).to.have.members [ - 'OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620' - 'OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d' - 'OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386' - 'OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf' - 'OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1' - 'OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64' - 'OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b' - ] - - $expect(pool.$VMs).to.have.members [ - 'OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620' - 'OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d' - 'OpaqueRef:d4fa8fba-ec86-5928-a1bb-dd78b6fb5944' - 'OpaqueRef:8491f148-3e78-9c74-ab98-84445c5f2861' - 'OpaqueRef:13b9ec24-04ea-ae04-78e6-6ec4b81a8deb' - 'OpaqueRef:c0fa9288-2a6b-cd8e-b9a8-cc5afc63b386' - 'OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf' - 'OpaqueRef:8f9966ea-38ef-ac4c-b634-81e31ef1e7c1' - 'OpaqueRef:646297e5-4fd6-c70d-6365-ef19b9807f64' - 'OpaqueRef:1ef43ee8-bc18-6c4f-4919-0e42a3ac6e4b' - ] - - $expect(pool.messages).to.have.members [ - 'OpaqueRef:0241d2be-fcda-64b7-b95d-550399f22000' - 'OpaqueRef:08093780-5d87-46f4-400d-fc8406bdd6c2' - 'OpaqueRef:0c565205-db69-eb0f-b80b-a8e356ae43ae' - 'OpaqueRef:0f955091-d6e6-ed3e-2bbe-94d914e6efbe' - 'OpaqueRef:15f61c91-5ac8-6234-78bb-2edbdcf9164f' - 'OpaqueRef:1b04b4db-3622-4d54-e8fa-a2f6661c6e43' - 'OpaqueRef:20aadafb-47c8-0796-e3c2-4e497bcb0205' - 'OpaqueRef:2243e321-e4bd-50dd-1451-f329df240517' - 'OpaqueRef:226e9274-77d6-9805-a0f3-396d1e54fe72' - 'OpaqueRef:230d01c6-3e25-b877-9e35-13a707335e23' - 'OpaqueRef:279e9aed-7d9e-13bc-e4d2-d477abbf9f6a' - 'OpaqueRef:2c460c86-2e1c-cd0d-cbaf-95bf771af2bc' - 'OpaqueRef:300a2868-2b8a-4f0c-788d-4e2ba4a160da' - 'OpaqueRef:323297f9-4a0b-c517-1ff7-eacad80fc796' - 'OpaqueRef:33d58ecd-d2a4-f63a-46bb-307a7c7762a6' - 'OpaqueRef:3962ad4b-18e9-53ce-ff72-b2ef3d6692ec' - 'OpaqueRef:3a8a42d6-f5b3-1479-3ad6-2c7caed94459' - 'OpaqueRef:3f77ad7a-de22-0b05-4005-7cfdc5d8bc86' - 'OpaqueRef:4147a60c-2b41-4dc7-491d-3470466abbc7' - 'OpaqueRef:443c4e46-d98a-87d6-92f5-c35bb5b65a5c' - 'OpaqueRef:4a3aebd9-e670-c796-4938-e29e178f1959' - 'OpaqueRef:50f02c5f-b2d0-a42a-a156-7905b78a918a' - 'OpaqueRef:5f34bfc5-f92f-9830-b3e9-06367ef56a77' - 'OpaqueRef:69d3511e-ec73-69c9-819e-14b85236059d' - 'OpaqueRef:6b04d423-8991-c838-d981-aca1b9c7be7d' - 'OpaqueRef:6e161f6f-df2b-195f-be46-530884a2c24a' - 'OpaqueRef:6f9b4c87-c7ba-1a87-073d-569051f307a8' - 'OpaqueRef:72360954-3629-1e09-b1bf-b819732bddfd' - 'OpaqueRef:79f9e82b-1a0e-75b7-efc5-8689a4cd4aed' - 'OpaqueRef:844844c6-5e82-4d9c-7ed9-01c46d46e67c' - 'OpaqueRef:84a7efe6-2a37-d4be-5f9a-aa66adfe3104' - 'OpaqueRef:9a645810-7308-c296-d9df-cc5d91f8f2a4' - 'OpaqueRef:a073f53c-557a-fd67-878d-b3a881ebd935' - 'OpaqueRef:a08f1c9a-34de-5441-b847-18533244910d' - 'OpaqueRef:a4fd777c-f417-23e9-8338-30d8097a8430' - 'OpaqueRef:a5296901-25c3-b600-7be7-16a20ba86600' - 'OpaqueRef:a99badbe-75fa-8bc8-22b3-78c616873b62' - 'OpaqueRef:ab16dfa7-3c86-56c3-038c-c6bcfe0b64c1' - 'OpaqueRef:af840b26-91b6-56aa-e2a0-266ce7dd411b' - 'OpaqueRef:b857ac11-36a0-38e4-4d9c-13586e381f7a' - 'OpaqueRef:c0b26952-1a46-9dfb-a826-78cbfeaa1b00' - 'OpaqueRef:cdeda917-3496-c407-95fd-2ef63bf5e79e' - 'OpaqueRef:d5ab7d13-0ebb-5805-b767-608cb7737690' - 'OpaqueRef:dae9fbe3-a709-3433-e8e3-491b3a79df84' - 'OpaqueRef:dd735a0f-d2fd-9475-7dd3-b387251f4426' - 'OpaqueRef:df07d60e-8a03-6979-3e61-4460bc8197b3' - 'OpaqueRef:e6a0aa45-f8e0-ae7d-7b3a-d76b95a03c95' - 'OpaqueRef:eaad760a-0e23-4e2b-3f96-2f65170a1dd7' - 'OpaqueRef:ebead5cf-4a48-ad28-4241-ad5869fa9752' - 'OpaqueRef:ecc7b91d-6f50-94c6-6f51-2d609dc3ebe7' - 'OpaqueRef:f3492f88-e0b0-405a-5723-f83429e016c5' - ] - - it 'host', -> - host = collection.get 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145' - - #console.log host - - $expect(host).to.be.an 'object' - - $expect(host.type).to.equal 'host' - - $expect(host.name_label).to.equal 'lab1' - - $expect(host.name_description).to.equal 'Default install of XenServer' - - $expect(host.tags).to.have.members [] - - $expect(host.address).to.equal '192.168.1.1' - - $expect(host.controller).to.equal 'OpaqueRef:719e4877-c7ad-68be-6b04-5750c8dcfeed' - - # Burk. - $expect(host.CPUs).to.deep.equal { - cpu_count: '4' - socket_count: '1' - vendor: 'GenuineIntel' - speed: '3192.858' - modelname: 'Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz' - family: '6' - model: '58' - stepping: '9' - flags: 'fpu de tsc msr pae mce cx8 apic sep mtrr mca cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc nonstop_tsc aperfmperf pni pclmulqdq vmx est ssse3 sse4_1 sse4_2 x2apic popcnt aes hypervisor ida arat tpr_shadow vnmi flexpriority ept vpid' - features: '77bae3ff-bfebfbff-00000001-28100800' - features_after_reboot: '77bae3ff-bfebfbff-00000001-28100800' - physical_features: '77bae3ff-bfebfbff-00000001-28100800' - maskable: 'full' - } - - $expect(host.enabled).to.be.true - - $expect(host.hostname).to.equal 'lab1' - - $expect(host.iSCSI_name).to.equal 'iqn.2013-07.com.example:83ba9261' - - $expect(host.memory).to.be.an 'object' - $expect(host.memory.usage).to.equal 2564788224 - $expect(host.memory.size).to.equal 8502759424 - - $expect(host.power_state).to.equal 'Running' - - $expect(host.SRs).to.have.members [ - 'OpaqueRef:31be9b5e-882a-a8ae-0edf-bf8942b49b5a' - 'OpaqueRef:7c88a8c6-fc48-8836-28fa-212f67c42d2f' - 'OpaqueRef:ec76bd6a-f2c0-636d-ca72-de8fb42d6eea' - ] - - $expect(host.templates).to.have.members [ - # TODO - ] - - $expect(host.VMs).to.have.members [ - 'OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620' - 'OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d' - ] - - $expect(host.$PBDs).to.have.members [ - 'OpaqueRef:ff32de74-138c-9d80-ab58-c631d2aa0e71' - 'OpaqueRef:f0f98779-5cf8-cabc-edc3-631a2d63d89c' - 'OpaqueRef:b70f8e06-07a8-a5e7-2856-f221c822e9b2' - 'OpaqueRef:b641552a-8c92-71b3-c0a2-e4dd3d04c215' - 'OpaqueRef:93320534-824f-850a-64a2-bcbfdc2e0927' - 'OpaqueRef:0c1d3862-5a38-e4cc-4a46-d8358a622461' - ] - - $expect(host.$PIFs).to.have.members [ - 'OpaqueRef:aef57ed4-e4d9-7f72-0376-b781a19bb9d2' - 'OpaqueRef:06f53e3d-d8de-d4ed-6359-9e20b4fb0d21' - ] - - $expect(host.messages).to.have.members [ - 'OpaqueRef:cb515b9a-ef8c-13d4-88ea-e0d3ee88d22a' - 'OpaqueRef:6ba7c244-3b44-2ed2-ec81-4fa13ea82465' - 'OpaqueRef:0e3fc97f-45ce-26c3-9435-899be96b35c4' - 'OpaqueRef:6ca16f45-6266-6cff-55cd-19a8ef0acf1a' - 'OpaqueRef:11452a2a-1ccd-e4df-25d8-ba99bba710db' - 'OpaqueRef:9ddc8eb2-969f-ba56-757a-efd482da5ce9' - 'OpaqueRef:68c8d0c6-e5a2-8ade-569a-dfc732e7994d' - 'OpaqueRef:ddb628ca-24f1-04d2-0b2c-9996aaab59f2' - 'OpaqueRef:0e7044a7-542b-4dd9-65bc-cded0e41853a' - 'OpaqueRef:ee26daf0-2ff7-734e-438d-9a521aaaa0c5' - 'OpaqueRef:40f8459f-1b6b-1625-1284-0f2878c3203d' - 'OpaqueRef:739ca434-6dca-b633-0097-b3f3183150a7' - 'OpaqueRef:cf655e45-c8c7-bdb9-e56c-5b67d6952f15' - 'OpaqueRef:3e33b140-f7e8-7dcc-3475-97dcc2fbfb5b' - 'OpaqueRef:8f3e2923-e690-e859-4f9e-a3e711a1e230' - 'OpaqueRef:ed7b1960-1ab7-4f47-8ef1-7a7769e09207' - 'OpaqueRef:6a0c4183-2f95-661f-9b19-0df0015867ca' - 'OpaqueRef:8d04b3fa-e81d-c6ae-d072-bd3a1ea22189' - 'OpaqueRef:dada1bd4-d7ed-429f-0a1a-585a3bfbf7e6' - 'OpaqueRef:a5648ca1-b37a-0765-9192-ebfb9ff376e8' - 'OpaqueRef:78c09b42-ad6f-0e66-0349-80b45264120d' - 'OpaqueRef:9c657a2b-560c-2050-014a-20e8cf5bd235' - 'OpaqueRef:1d50d25b-41f6-ffd3-5410-0de4fbed8543' - 'OpaqueRef:cb515b9a-ef8c-13d4-88ea-e0d3ee88d22a' - 'OpaqueRef:6ba7c244-3b44-2ed2-ec81-4fa13ea82465' - 'OpaqueRef:0e3fc97f-45ce-26c3-9435-899be96b35c4' - 'OpaqueRef:6ca16f45-6266-6cff-55cd-19a8ef0acf1a' - 'OpaqueRef:11452a2a-1ccd-e4df-25d8-ba99bba710db' - 'OpaqueRef:9ddc8eb2-969f-ba56-757a-efd482da5ce9' - 'OpaqueRef:68c8d0c6-e5a2-8ade-569a-dfc732e7994d' - 'OpaqueRef:ddb628ca-24f1-04d2-0b2c-9996aaab59f2' - 'OpaqueRef:0e7044a7-542b-4dd9-65bc-cded0e41853a' - 'OpaqueRef:ee26daf0-2ff7-734e-438d-9a521aaaa0c5' - 'OpaqueRef:40f8459f-1b6b-1625-1284-0f2878c3203d' - 'OpaqueRef:739ca434-6dca-b633-0097-b3f3183150a7' - 'OpaqueRef:cf655e45-c8c7-bdb9-e56c-5b67d6952f15' - 'OpaqueRef:3e33b140-f7e8-7dcc-3475-97dcc2fbfb5b' - 'OpaqueRef:8f3e2923-e690-e859-4f9e-a3e711a1e230' - 'OpaqueRef:ed7b1960-1ab7-4f47-8ef1-7a7769e09207' - 'OpaqueRef:6a0c4183-2f95-661f-9b19-0df0015867ca' - 'OpaqueRef:8d04b3fa-e81d-c6ae-d072-bd3a1ea22189' - 'OpaqueRef:dada1bd4-d7ed-429f-0a1a-585a3bfbf7e6' - 'OpaqueRef:a5648ca1-b37a-0765-9192-ebfb9ff376e8' - 'OpaqueRef:78c09b42-ad6f-0e66-0349-80b45264120d' - 'OpaqueRef:9c657a2b-560c-2050-014a-20e8cf5bd235' - 'OpaqueRef:1d50d25b-41f6-ffd3-5410-0de4fbed8543' - ] - - $expect(host.tasks).to.have.members [ - # TODO - ] - - $expect(host.$running_VMs).to.have.members [ - 'OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620' - 'OpaqueRef:46fa4c52-5e93-6cf7-32e3-c51fb4ed106d' - ] - - $expect(host.$vCPUs).to.equal 2 - - it 'VM', -> - vm = collection.get 'OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620' - - #console.log vm - - $expect(vm).to.be.an 'object' - - $expect(vm.type).to.equal 'VM' - - $expect(vm.name_label).to.equal 'ceph3' - - $expect(vm.name_description).to.equal '' - - $expect(vm.tags).to.have.members [] - - $expect(vm.addresses).to.deep.equal { - '0/ip': '192.168.1.116' - '0/ipv6/0': 'fe80::cc20:2bff:fe38:7ffd' - } - - $expect(vm.consoles).to.deep.equal [ - { - uuid: 'b7f85b67-4b8a-0586-b279-6146da76642f' - protocol: 'rfb' - location: 'https://192.168.1.1/console?uuid=b7f85b67-4b8a-0586-b279-6146da76642f' - VM: 'OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620' - other_config: {} - '$pool': '313624ab-0958-bb1e-45b5-7556a463a10b' - '$poolRef': 'OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e' - '$ref': 'OpaqueRef:69b8dbde-161c-b3fa-bd1a-3567e7efdbda' - '$type': 'console' - } - ] - - $expect(vm.current_operations).to.deep.equal { - # No data for this test. - } - - $expect(vm.memory).to.deep.equal { - dynamic: [ - 536870912 - 536870912 - ] - static: [ - 134217728 - 536870912 - ] - size: 536838144 - } - - $expect(vm.messages).to.have.members [ - 'OpaqueRef:a242799a-03bf-b55e-ecde-ddfe902fa69e' - 'OpaqueRef:5cec485b-e276-c45b-09cb-dd02bb1d00f3' - 'OpaqueRef:ff3b6df1-b761-0d75-e80e-4ef137eec9e6' - 'OpaqueRef:a8d94d7e-7a6e-0cc1-b7a0-8f18940410fd' - 'OpaqueRef:35585a79-caf7-6522-18ee-8d3e8459441d' - 'OpaqueRef:68d1102f-eadc-e1f3-7949-3f62248c165c' - 'OpaqueRef:974bef10-184a-c063-aa32-c318fd39e400' - 'OpaqueRef:e092c4e1-a211-204a-f773-49cc3a4611be' - 'OpaqueRef:013a4a12-1981-fbc8-92ac-1fa45d2e9c9c' - 'OpaqueRef:a77fc714-b5b1-0c37-d006-0935506bb8cd' - 'OpaqueRef:554ec983-e67a-fc8b-7d2a-00c55be5f266' - 'OpaqueRef:38404a18-4c1b-0bf5-1d45-c47243bbc69d' - 'OpaqueRef:0f98e883-a4d5-0fd8-3aa3-92be69adc4e3' - 'OpaqueRef:b3e9ac53-f6b8-4c49-f096-57f680136477' - 'OpaqueRef:1aa65d64-a00b-4c0b-be07-95f6eec7fd87' - 'OpaqueRef:be431f8c-f39b-4a64-5fc2-de9744ced26a' - 'OpaqueRef:0e571611-6194-6ce6-bae0-94bbe57576c6' - 'OpaqueRef:114fdd8a-844c-6bb5-0855-e3427bc8f073' - 'OpaqueRef:a486606c-1c75-e1c3-56de-c6e1bc3df980' - 'OpaqueRef:b6975094-843e-a19a-6101-ee7953e40580' - 'OpaqueRef:f15d7d4c-32d1-45e1-5f6f-ddc68733bab6' - 'OpaqueRef:1b04b1a2-e8b2-df82-6618-0d0a741d8bbb' - 'OpaqueRef:dcd41e75-47fc-5ae5-1d59-5176a7b76eaa' - 'OpaqueRef:71ed5eba-33c9-6deb-6dc2-ab670a6c968b' - 'OpaqueRef:59ee665c-9270-64a4-3829-aef3e045a705' - 'OpaqueRef:88979f4b-16ef-3b99-a616-aa1e2787bebe' - 'OpaqueRef:80a3e419-5a81-a7df-103d-5cf60bbde793' - 'OpaqueRef:38737284-e4e1-5172-2bf3-f9d70dcaadfa' - 'OpaqueRef:456d4d7f-77f8-ef40-aadd-f56601bc7c2b' - 'OpaqueRef:4a949518-cc01-a003-f386-b3319db6d7a6' - 'OpaqueRef:c8834c52-f15b-437d-1e09-958fedbf3c5b' - 'OpaqueRef:07d40d2c-4f6e-4f5f-0c3e-c2ea028d4fc4' - 'OpaqueRef:6df45555-1b11-2873-8947-2b6e7c9445be' - 'OpaqueRef:d3c60e69-2cf8-191f-9679-d6ae0ecdf5f9' - 'OpaqueRef:ed499671-2c01-3dc9-f6cd-553fef4b6716' - ] - - $expect(vm.power_state).to.equal 'Running' - - $expect(vm.CPUs).to.deep.equal { - max: 1 - number: 1 - } - - $expect(vm.$CPU_usage).to.be.null - - $expect(vm.$container).to.equal 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145' - - $expect(vm.snapshots).to.have.members [] - - $expect(vm.snapshot_time).to.equal null - - $expect(vm.$VBDs).to.have.members [ - 'OpaqueRef:dbb53525-e1a3-741b-4924-9944b845bc0c' - 'OpaqueRef:1bd20244-01a0-fec3-eb00-79a453a56446' - ] - - $expect(vm.VIFs).to.have.members [ - 'OpaqueRef:20349ad5-0a0d-4b80-dcc0-0037fa647182' - ] - - it 'VM-template', -> - vm = collection.get 'OpaqueRef:f02a3c19-447b-c618-fb51-a9cde79be17c' - - #console.log vm - - # Only specific VM-templates fields will be tested. - - $expect(vm.type).to.equal 'VM-template' - - $expect(vm.template_info).to.be.an 'object' - - $expect(vm.template_info.arch).to.equal 'amd64' - - $expect(vm.template_info.disks).to.deep.equal [ - { - bootable: true - device: '0' - size: 8589934592 - SR: '' - type: 'system' - } - ] - - $expect(vm.template_info.install_methods).to.have.members [ - 'cdrom' - 'http' - 'ftp' - ] - - it 'SR', -> - sr = collection.get 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee' - - #console.log sr - - $expect(sr).to.be.an 'object' - - $expect(sr.type).to.equal 'SR' - - $expect(sr.name_label).to.equal 'Zfs' - - $expect(sr.name_description).to.equal 'iSCSI SR [192.168.0.100 (iqn.1986-03.com.sun:02:ba2ab54c-2d14-eb74-d6f9-ef7c4f28ff1e; LUN 0: A83BCKLAF: 2048 GB (NEXENTA))]' - - $expect(sr.SR_type).to.equal 'lvmoiscsi' - - $expect(sr.content_type).to.equal '' - - $expect(sr.physical_usage).to.equal 205831274496 - - $expect(sr.usage).to.equal 202358390784 - - $expect(sr.size).to.equal 2199010672640 - - $expect(sr.$container).to.equal 'OpaqueRef:6462d0b3-8f20-ef76-fddf-002f7af3452e' - - $expect(sr.$PBDs).to.have.members [ - 'OpaqueRef:ff32de74-138c-9d80-ab58-c631d2aa0e71' - 'OpaqueRef:200674ae-d9ab-2caa-a283-4fa3d14592fd' - ] - - $expect(sr.VDIs).to.have.members [ - 'OpaqueRef:b4a1573f-c235-8acd-4625-dfbcb2beb523' - 'OpaqueRef:098a2155-605b-241e-f775-a05c2133874e' - 'OpaqueRef:f7d900f9-a4fe-9a3e-ead8-28db301d26e8' - 'OpaqueRef:f26d2af5-b529-4d16-21d1-a56965e7bfb1' - 'OpaqueRef:ec5ce10e-023e-9a9f-eef7-a64e4c6d7b28' - 'OpaqueRef:e0eb5eb1-a485-fcfc-071e-fafa17f9ac48' - 'OpaqueRef:c4aa5d87-4115-c359-9cdf-c16fbf56cf2c' - 'OpaqueRef:b06a9d3f-5132-e58f-25c4-ef94d5b38986' - 'OpaqueRef:a4dd8a73-5393-81ce-abce-fc1502490a6d' - 'OpaqueRef:83331526-8bd8-9644-0a7d-9f645f5fcd70' - 'OpaqueRef:693bef17-aa19-63f8-3775-7d3b2dbce9d6' - 'OpaqueRef:67618138-57df-e90a-74c6-402ad62d657b' - 'OpaqueRef:5f1d5117-1033-b12a-92a8-99f206c9dbba' - 'OpaqueRef:287084c1-241a-58df-929a-cbe2e7454a56' - 'OpaqueRef:1f7f9828-f4e7-41dd-20e6-3bf57c559a78' - ] - - $expect(sr.messages).to.have.members [ - # No data for this test. - ] - - it 'PBD', -> - pbd = collection.get 'OpaqueRef:ff32de74-138c-9d80-ab58-c631d2aa0e71' - - #console.log pbd - - $expect(pbd).to.an 'object' - - $expect(pbd.type).to.equal 'PBD' - - $expect(pbd.attached).to.be.true - - $expect(pbd.host).to.equal 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145' - - $expect(pbd.SR).to.equal 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee' - - it 'PIF', -> - pif = collection.get 'OpaqueRef:aef57ed4-e4d9-7f72-0376-b781a19bb9d2' - - #console.log pif - - $expect(pif).to.an 'object' - - $expect(pif.type).to.equal 'PIF' - - $expect(pif.attached).to.be.true - - $expect(pif.device).to.equal 'eth0' - - $expect(pif.IP).to.equal '192.168.1.1' - - $expect(pif.$host).to.equal 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145' - - $expect(pif.MAC).to.equal '90:2b:34:d3:ce:75' - - $expect(pif.management).to.be.true - - $expect(pif.mode).to.equal 'Static' - - $expect(pif.MTU).to.equal 1500 - - $expect(pif.netmask).to.equal '255.255.255.0' - - $expect(pif.$network).to.equal 'OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0' - - it 'VDI', -> - vdi = collection.get 'OpaqueRef:1f7f9828-f4e7-41dd-20e6-3bf57c559a78' - - #console.log vdi - - $expect(vdi).to.an 'object' - - $expect(vdi.type).to.equal 'VDI' - - $expect(vdi.name_label).to.equal 'ceph' - - $expect(vdi.name_description).to.equal '' - - $expect(vdi.usage).to.equal 21525168128 - - $expect(vdi.size).to.equal 21474836480 - - $expect(vdi.$snapshot_of).to.equal null - - $expect(vdi.snapshots).to.have.members [ - 'OpaqueRef:b4a1573f-c235-8acd-4625-dfbcb2beb523' - ] - - $expect(vdi.$SR).to.equal 'OpaqueRef:d6fe49bf-dd48-c929-5aab-b2786a2e7aee' - - $expect(vdi.$VBDs).to.have.members [ - 'OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d' - ] - - it 'VBD', -> - vbd = collection.get 'OpaqueRef:9f15200b-3cac-7a61-b3e8-dd2fc0a5572d' - - #console.log vbd - - $expect(vbd).to.an 'object' - - $expect(vbd.type).to.equal 'VBD' - - $expect(vbd.attached).to.be.true - - $expect(vbd.bootable).to.be.false - - $expect(vbd.is_cd_drive).to.be.false - - $expect(vbd.read_only).to.be.false - - $expect(vbd.VDI).to.equal 'OpaqueRef:1f7f9828-f4e7-41dd-20e6-3bf57c559a78' - - $expect(vbd.VM).to.equal 'OpaqueRef:be2390b2-cd08-53f5-3fae-b76f6f3725bf' - - it 'VIF', -> - vif = collection.get 'OpaqueRef:20349ad5-0a0d-4b80-dcc0-0037fa647182' - - #console.log vif - - $expect(vif).to.an 'object' - - $expect(vif.type).to.equal 'VIF' - - $expect(vif.attached).to.be.true - - $expect(vif.device).to.equal '0' - - $expect(vif.MAC).to.equal 'ce:20:2b:38:7f:fd' - - $expect(vif.MTU).to.equal 1500 - - $expect(vif.$network).to.equal 'OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0' - - $expect(vif.$VM).to.equal 'OpaqueRef:fdaba312-c3a5-0190-b1a1-bf389567e620' - - it 'network', -> - network = collection.get 'OpaqueRef:dbc93777-f2c0-e888-967d-dd9beeffb3c0' - - #console.log network - - $expect(network).to.be.an 'object' - - $expect(network.type).to.equal 'network' - - $expect(network.name_label).to.equal 'Pool-wide network associated with eth0' - - $expect(network.name_description).to.equal '' - - $expect(network.bridge).to.equal 'xenbr0' - - $expect(network.MTU).to.equal 1500 - - $expect(network.PIFs).to.have.members [ - 'OpaqueRef:aef57ed4-e4d9-7f72-0376-b781a19bb9d2' - 'OpaqueRef:971d6bc5-60f4-a331-bdee-444ee7cbf678' - ] - - $expect(network.VIFs).to.have.members [ - 'OpaqueRef:fc86d17e-d9d1-5534-69d6-d15edbe36d22' - 'OpaqueRef:ed2d89ca-1f4e-09ff-f80e-991d6b01de45' - 'OpaqueRef:c6651d03-cefe-accf-920b-636e32fee23c' - 'OpaqueRef:c5977d9b-cb50-a615-8488-1dd105d69802' - 'OpaqueRef:c391575b-168f-e52b-59f7-9f852a2c6854' - 'OpaqueRef:bf4da755-480b-e3fd-2bfe-f53e7204c8ae' - 'OpaqueRef:ba41d1a6-724e-aae8-3447-20f74014eb75' - 'OpaqueRef:b8df4453-542e-6c14-0eb1-174d48373bca' - 'OpaqueRef:b5980de3-1a74-9f57-1e98-2a74184211dc' - 'OpaqueRef:aaae3669-faee-4338-3156-0ce8c06c75cf' - 'OpaqueRef:aa874254-b67c-e9e3-6a08-1c770c2dd8ac' - 'OpaqueRef:7b8ecb18-5bc5-7650-3ac4-6bc22322e8ba' - 'OpaqueRef:59b884b0-521f-7b3e-6a91-319ded893e68' - 'OpaqueRef:20349ad5-0a0d-4b80-dcc0-0037fa647182' - ] - - it 'message', -> - message = collection.get 'OpaqueRef:cb515b9a-ef8c-13d4-88ea-e0d3ee88d22a' - - #console.log message - - $expect(message.type).to.equal 'message' - - $expect(message.time).to.equal 1389449056 - - $expect(message.$object).to.equal 'OpaqueRef:bbc98f5e-1a17-2030-28af-0df2393f3145' - - $expect(message.name).to.equal 'PBD_PLUG_FAILED_ON_SERVER_START' - - $expect(message.body).to.equal '' - - it 'task', -> - all = collection.get() - - for object in all - if object.type is 'task' - console.log object - - # FIXME: we need to update the tests data to complete this test. diff --git a/src/xapi-objects-to-xo.js b/src/xapi-objects-to-xo.js new file mode 100644 index 000000000..12ccd3e73 --- /dev/null +++ b/src/xapi-objects-to-xo.js @@ -0,0 +1,493 @@ +import forEach from 'lodash.foreach' +import isArray from 'lodash.isarray' +import map from 'lodash.map' + +import { + ensureArray, + extractProperty, + parseXml +} from './utils' +import { + isHostRunning, + isVmRunning +} from './xapi' + +// =================================================================== + +function link (obj, prop) { + const dynamicValue = obj[`$${prop}`] + if (dynamicValue == null) { + return dynamicValue // Properly handles null and undefined. + } + + if (isArray(dynamicValue)) { + return map(dynamicValue, '$id') + } + + return dynamicValue.$id +} + +function toTimestamp (date) { + // Weird behavior from the XAPI. + if (!date || date === '1969-12-31T23:00:00.000Z') { + return null + } + + return Math.round(Date.parse(date) / 1000) +} + +// =================================================================== + +export function pool (obj) { + return { + default_SR: link(obj, 'default_SR'), + HA_enabled: obj.ha_enabled, + master: link(obj, 'master'), + name_description: obj.name_description, + name_label: obj.name_label + + // TODO + // - ? networks = networksByPool.items[pool.id] (network.$pool.id) + // - hosts = hostsByPool.items[pool.id] (host.$pool.$id) + // - patches = poolPatchesByPool.items[pool.id] (poolPatch.$pool.id) + // - SRs = srsByContainer.items[pool.id] (sr.$container.id) + // - templates = vmTemplatesByContainer.items[pool.id] (vmTemplate.$container.$id) + // - VMs = vmsByContainer.items[pool.id] (vm.$container.id) + // - $running_hosts = runningHostsByPool.items[pool.id] (runningHost.$pool.id) + // - $running_VMs = runningVmsByPool.items[pool.id] (runningHost.$pool.id) + // - $VMs = vmsByPool.items[pool.id] (vm.$pool.id) + } +} + +// ------------------------------------------------------------------- + +export function host (obj) { + const { + $metrics: metrics, + other_config: otherConfig + } = obj + + const isRunning = isHostRunning(obj) + + return { + address: obj.address, + bios_strings: obj.bios_strings, + build: obj.software_version.build_number, + CPUs: obj.cpu_info, + enabled: obj.enabled, + current_operations: obj.current_operations, + hostname: obj.hostname, + iSCSI_name: otherConfig.iscsi_iqn || null, + name_description: obj.name_description, + name_label: obj.name_label, + memory: (function () { + if (metrics) { + const free = +metrics.memory_free + const total = +metrics.memory_total + + return { + usage: total - free, + size: total + } + } + + return { + usage: 0, + total: 0 + } + })(), + patches: link(obj, 'patches'), + power_state: isRunning ? 'Running' : 'Halted', + version: obj.software_version.product_version, + + // TODO: dedupe. + PIFs: link(obj, 'PIFs'), + $PIFs: link(obj, 'PIFs'), + PCIs: link(obj, 'PCIs'), + $PCIs: link(obj, 'PCIs'), + PGPUs: link(obj, 'PGPUs'), + $PGPUs: link(obj, 'PGPUs'), + + $PBDs: link(obj, 'PBDs') + + // TODO: + // - controller = vmControllersByContainer.items[host.id] + // - SRs = srsByContainer.items[host.id] + // - tasks = tasksByHost.items[host.id] + // - templates = vmTemplatesByContainer.items[host.id] + // - VMs = vmsByContainer.items[host.id] + // - $vCPUs = sum(host.VMs, vm => host.CPUs.number) + } +} + +// ------------------------------------------------------------------- + +export function vm (obj) { + const { + $guest_metrics: guestMetrics, + $metrics: metrics, + other_config: otherConfig + } = obj + + const isRunning = isVmRunning(obj) + + const vm = { + // type is redefined after for controllers/, templates & + // snapshots. + type: 'VM', + + addresses: guestMetrics && guestMetrics.networks || null, + auto_poweron: Boolean(otherConfig.auto_poweron), + boot: obj.HVM_boot_params, + CPUs: { + max: +obj.VCPUs_max, + number: ( + isRunning && metrics ? + +metrics.VCPUs_number : + +obj.VCPUs_at_startup + ) + }, + current_operations: obj.current_operations, + docker: (function () { + const monitor = otherConfig['xscontainer-monitor'] + if (!monitor) { + return + } + + if (monitor === 'False') { + return { + enabled: false + } + } + + const { + docker_ps: process, + docker_info: info, + docker_version: version + } = otherConfig + + return { + enabled: true, + info: info && parseXml(info).docker_info, + process: process && parseXml(process).docker_ps, + version: version && parseXml(version).version + } + })(), + + // TODO: there is two possible value: "best-effort" and "restart" + high_availability: Boolean(obj.ha_restart_priority), + + memory: (function () { + const dynamicMin = +obj.memory_dynamic_min + const dynamicMax = +obj.memory_dynamic_max + const staticMin = +obj.memory_static_min + const staticMax = +obj.memory_static_max + + const memory = { + dynamic: [ dynamicMin, dynamicMax ], + static: [ staticMin, staticMax ] + } + + const gmMemory = guestMetrics && guestMetrics.memory + + if (!isRunning) { + memory.size = dynamicMax + } else if (gmMemory) { + memory.usage = +gmMemory.used + memory.size = +gmMemory.total + } else if (metrics) { + memory.size = +metrics.memory_actual + } else { + memory.size = dynamicMax + } + + return memory + })(), + name_description: obj.name_description, + name_label: obj.name_label, + other: otherConfig, + os_version: guestMetrics && guestMetrics.os_version || null, + power_state: obj.power_state, + PV_drivers: Boolean(guestMetrics && guestMetrics.PV_drivers_up_to_date), + snapshot_time: toTimestamp(obj.snapshot_time), + snapshots: link(obj, 'snapshots'), + VIFs: link(obj, 'VIFs'), + + $container: ( + isRunning ? + link(obj, 'resident_on') : + link(obj, 'pool') // TODO: handle local VMs (`VM.get_possible_hosts()`). + ), + $VBDs: link(obj, 'VBDs'), + + // TODO: dedupe + VGPUs: link(obj, 'VGPUs'), + $VGPUs: link(obj, 'VGPUs') + } + + if (obj.is_control_domain) { + vm.type += '-controller' + } else if (obj.is_a_snapshot) { + vm.type += '-snapshot' + + vm.$snapshot_of = link(obj, 'snapshot_of') + } else if (obj.is_a_template) { + vm.type += '-template' + + vm.CPUs.number = +obj.VCPUs_at_startup + vm.template_info = { + arch: otherConfig['install-arch'], + disks: (function () { + const {xml} = otherConfig + if (!xml) { + return [] + } + + const disks = ensureArray(parseXml(xml).provision.disk) + forEach(disks, function normalize (disk) { + disk.bootable = disk.bootable === 'true' + disk.size = +disk.size + disk.SR = extractProperty(disk, 'sr') + }) + + return disks + })(), + install_methods: (function () { + const {['install-methods']: methods} = otherConfig + + return methods ? methods.split(',') : [] + })() + } + } + + return vm +} + +// ------------------------------------------------------------------- + +export function sr (obj) { + return { + type: 'SR', + + content_type: obj.content_type, + name_description: obj.name_description, + name_label: obj.name_label, + physical_usage: +obj.physical_utilisation, + size: +obj.physical_size, + SR_type: obj.type, + usage: +obj.virtual_allocation, + VDI: link(obj, 'VDIs'), + + $container: ( + obj.shared ? + link(obj, 'pool') : + + // FIXME: find host for which host.PBDs includes obj.$ref + null + ), + $PBDs: link(obj, 'PBDs') + } +} + +// ------------------------------------------------------------------- + +export function pbd (obj) { + return { + type: 'PBD', + + attached: obj.currently_attached, + host: link(obj, 'host'), + SR: link(obj, 'SR') + } +} + +// ------------------------------------------------------------------- + +export function pif (obj) { + return { + type: 'PIF', + + attached: obj.currently_attached, + device: obj.device, + IP: obj.IP, + MAC: obj.MAC, + management: obj.management, // TODO: find a better name. + mode: obj.ip_configuration_mode, + MTU: +obj.MTU, + netmask: obj.netmask, + vlan: +obj.VLAN, + + // TODO: What is it? + // + // Could it mean “is this a physical interface?”. + // How could a PIF not be physical? + // physical: obj.physical, + + $host: link(obj, 'host'), + $network: link(obj, 'network') + } +} + +// ------------------------------------------------------------------- + +// TODO: should we have a VDI-snapshot type like we have with VMs? +export function vdi (obj) { + return { + type: 'VDI', + + name_description: obj.name_description, + name_label: obj.name_label, + size: +obj.virtual_size, + snapshots: link(obj, 'snapshots'), + snapshot_time: toTimestamp(obj.snapshot_time), + usage: +obj.physical_utilisation, + + $snapshot_of: link(obj, 'snapshot_of'), + $SR: link(obj, 'SR'), + $VBDs: link(obj, 'VBDs') + } +} + +// ------------------------------------------------------------------- + +export function vbd (obj) { + return { + type: 'VBD', + + attached: obj.currently_attached, + bootable: obj.bootable, + is_cd_drive: obj.type === 'CD', + position: obj.userdevice, + read_only: obj.mode === 'RO', + VDI: link(obj, 'VDI'), + VM: link(obj, 'VM') + } +} + +// ------------------------------------------------------------------- + +export function vif (obj) { + return { + type: 'VIF', + + attached: obj.currently_attached, + device: obj.device, // TODO: should it be cast to a number? + MAC: obj.MAC, + MTU: +obj.MTU, + + $network: link(obj, 'network'), + $VM: link(obj, 'VM') + } +} + +// ------------------------------------------------------------------- + +export function network (obj) { + return { + bridge: obj.bridge, + MTU: +obj.MTU, + name_description: obj.name_description, + name_label: obj.name_label, + PIFs: link(obj, 'PIFs'), + VIFs: link(obj, 'VIFs') + } +} + +// ------------------------------------------------------------------- + +export function message (obj) { + return { + body: obj.body, + name: obj.name, + time: toTimestamp(obj.timestamp), + + $object: obj.obj_uuid // Special link as it is already an UUID. + } +} + +// ------------------------------------------------------------------- + +export function task (obj) { + return { + created: toTimestamp(obj.created), + current_operations: obj.current_operations, + finished: toTimestamp(obj.finished), + name_description: obj.name_description, + name_label: obj.name_label, + progress: +obj.progress, + result: obj.result, + status: obj.status, + + $host: link(obj, 'resident_on') + } +} + +// ------------------------------------------------------------------- + +export function host_patch (obj) { + return { + applied: obj.applied, + time: toTimestamp(obj.timestamp_applied), + pool_patch: link(obj, 'pool_patch'), + + $host: link(obj, 'host') + } +} + +// ------------------------------------------------------------------- + +export function pool_patch (obj) { + return { + applied: obj.pool_applied, + name_description: obj.name_description, + name_label: obj.name_label, + size: +obj.size, + version: obj.version, + + // TODO: host.[$]pool_patches ←→ pool.[$]host_patches + $host_patches: link(obj, 'host_patches') + } +} + +// ------------------------------------------------------------------- + +export function pci (obj) { + return { + type: 'PCI', + + class_name: obj.class_name, + device_name: obj.device_name, + pci_id: obj.pci_id, + + $host: link(obj, 'host') + } +} + +// ------------------------------------------------------------------- + +export function pgpu (obj) { + return { + type: 'PGPU', + + pci: link(obj, 'PCI'), + + // TODO: dedupe. + host: link(obj, 'host'), + $host: link(obj, 'host'), + vgpus: link(obj, 'resident_VGPUs'), + $vgpus: link(obj, 'resident_VGPUs') + } +} + +// ------------------------------------------------------------------- + +export function vgpu (obj) { + return { + type: 'VGPU', + + currentlyAttached: obj.currently_attached, + device: obj.device, + resident_on: link(obj, 'resident_on'), + vm: link(obj, 'VM') + } +} diff --git a/src/xapi.js b/src/xapi.js index 5c40b1ff6..743c0e26d 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -61,11 +61,17 @@ const getNamespaceForType = (type) => typeToNamespace[type] || type // =================================================================== +export const isHostRunning = (host) => { + const {$metrics: metrics} = host + + return metrics && metrics.live +} + const VM_RUNNING_POWER_STATES = { Running: true, Paused: true } -const isVmRunning = (vm) => VM_RUNNING_POWER_STATES[vm.power_state] +export const isVmRunning = (vm) => VM_RUNNING_POWER_STATES[vm.power_state] // =================================================================== @@ -76,23 +82,13 @@ export default class Xapi extends XapiBase { const objectsWatchers = this._objectWatchers = Object.create(null) const taskWatchers = this._taskWatchers = Object.create(null) - // TODO: This is necessary to get UUIDs for host.patches. - // - // It will no longer be useful when using xen-api >= 0.5. - this._refsToUuids = Object.create(null) - const onAddOrUpdate = objects => { forEach(objects, object => { const { $id: id, - $ref: ref, - uuid + $ref: ref } = object - if (ref && uuid) { - this._refsToUuids[ref] = uuid - } - // Watched object. if (id in objectsWatchers) { objectsWatchers[id].resolve(object) @@ -123,56 +119,6 @@ export default class Xapi extends XapiBase { this.objects.on('update', onAddOrUpdate) } - // FIXME: remove this backported methods when xen-api >= 0.5 - getObject (idOrUuidOrRef, defaultValue) { - const {_objects: {all: objects}} = this - const object = ( - // if there is an UUID, it is also the $id. - objects[idOrUuidOrRef] || - objects[this._refsToUuids[idOrUuidOrRef]] - ) - - if (object) return object - - if (arguments.length > 1) return defaultValue - - throw new Error('no object can be matched to ' + idOrUuidOrRef) - } - getObjectByRef (ref, defaultValue) { - const { - _refsToUuids: refsToUuids, - - // Objects ids are already UUIDs if they have one. - _objects: {all: objectsByUuids} - } = this - - if (ref in refsToUuids) { - return objectsByUuids[refsToUuids[ref]] - } - - if (arguments.length > 1) { - return defaultValue - } - - throw new Error('there is no object with the ref ' + ref) - } - getObjectByUuid (uuid, defaultValue) { - const { - // Objects ids are already UUIDs if they have one. - _objects: {all: objectsByUuids} - } = this - - if (uuid in objectsByUuids) { - return objectsByUuids[uuid] - } - - if (arguments.length > 1) { - return defaultValue - } - - throw new Error('there is no object with the UUID ' + uuid) - } - // ================================================================= // Wait for an object to appear or to be updated. @@ -366,10 +312,8 @@ export default class Xapi extends XapiBase { const all = (await this._getXenUpdates()).versions[version].patches const installed = Object.create(null) - // TODO: simplify when we start to use xen-api >= 0.5 - forEach(host.patches, ref => { - const hostPatch = this.objects.all[this._refsToUuids[ref]] - installed[this._refsToUuids[hostPatch.pool_patch]] = true + forEach(host.$patches, hostPatch => { + installed[hostPatch.$pool_patch.uuid] = true }) const installable = [] @@ -395,11 +339,8 @@ export default class Xapi extends XapiBase { async uploadPoolPatch (stream, length) { const task = await this._createTask('Patch upload') - // TODO: Update when xen-api >= 0.5 - const poolMaster = this.objects.all[this._refsToUuids[this.pool.master]] - const [, patchRef] = await Promise.all([ - gotPromise('http://' + poolMaster.address + '/pool_patch_upload', { + gotPromise('http://' + this.pool.$master.address + '/pool_patch_upload', { method: 'put', body: stream, query: { @@ -489,10 +430,9 @@ export default class Xapi extends XapiBase { } if (deleteDisks) { - // TODO: simplify when we start to use xen-api >= 0.5 - await Promise.all(map(vm.VBDs, ref => { + await Promise.all(map(vm.$VBDs, vbd => { try { - return this._deleteVdi(this.getObject(ref).VDI).catch(noop) + return this._deleteVdi(vbd.$VDI).catch(noop) } catch (_) {} })) } @@ -507,10 +447,10 @@ export default class Xapi extends XapiBase { let host let snapshotRef if (isVmRunning(vm)) { - host = this.getObject(vm.resident_on) + host = vm.$resident_on snapshotRef = await this._snapshotVm(vm) } else { - host = this.getObject(this.pool.master) + host = this.pool.$master } const task = await this._createTask('VM Snapshot', vm.name_label) @@ -548,7 +488,7 @@ export default class Xapi extends XapiBase { async _doDockerAction (vmId, action, containerId) { const vm = this.getObject(vmId) - const host = this.getObject(vm.resident_on) + const host = vm.$resident_on return await this.call('host.call_plugin', host.$ref, 'xscontainer', action, { vmuuid: vm.uuid, diff --git a/src/xo.js b/src/xo.js index 68e07eedd..3d6976a14 100644 --- a/src/xo.js +++ b/src/xo.js @@ -1,54 +1,50 @@ import Bluebird from 'bluebird' +import createDebug from 'debug' import forEach from 'lodash.foreach' import includes from 'lodash.includes' import isEmpty from 'lodash.isempty' import isString from 'lodash.isstring' -import pluck from 'lodash.pluck' import proxyRequest from 'proxy-http-request' -// import XoCollection from 'xo-collection' +import XoCollection from 'xo-collection' +import XoUniqueIndex from 'xo-collection/unique-index' // import XoView from 'xo-collection/view' import {createClient as createRedisClient} from 'then-redis' import {EventEmitter} from 'events' import {parse as parseUrl} from 'url' -import {ModelAlreadyExists} from './collection' +import * as xapiObjectsToXo from './xapi-objects-to-xo' import Connection from './connection' -import spec from './spec' import User, {Users} from './models/user' import Xapi from './xapi' -import {$MappedCollection as MappedCollection} from './MappedCollection' import {Acls} from './models/acl' +import {autobind} from './decorators' import {generateToken} from './utils' import {JsonRpcError, NoSuchObject, Unauthorized} from './api-errors' +import {ModelAlreadyExists} from './collection' import {Servers} from './models/server' import {Tokens} from './models/token' // =================================================================== +const debug = createDebug('xo:xo') + +// =================================================================== + class NoSuchAuthenticationToken extends NoSuchObject { constructor (id) { - super({ - type: 'authentication token', - id - }) + super(id, 'authentication token') } } class NoSuchUser extends NoSuchObject { constructor (id) { - super({ - type: 'user', - id - }) + super(id, 'user') } } class NoSuchXenServer extends NoSuchObject { constructor (id) { - super({ - type: 'xen server', - id - }) + super(id, 'xen server') } } @@ -70,7 +66,8 @@ export default class Xo extends EventEmitter { constructor () { super() - // this._objects = new XoCollection() + this._objects = new XoCollection() + this._objects.createIndex('byRef', new XoUniqueIndex('ref')) // These will be initialized in start() // @@ -88,17 +85,14 @@ export default class Xo extends EventEmitter { this._nextConId = 0 this._connections = Object.create(null) - // Collections of XAPI objects mapped to XO Api. - this._xobjs = new MappedCollection() - spec.call(this._xobjs) - this._watchXobjs() - this._httpRequestWatchers = Object.create(null) // TODO: remove when no longer necessary. this._proxyRequests = Object.create(null) this._authenticationProviders = new Set() + + this._watchObjects() } // ----------------------------------------------------------------- @@ -146,9 +140,6 @@ export default class Xo extends EventEmitter { } }.bind(this)) - // Exports the map from UUIDs to keys. - this._UUIDsToKeys = this._xobjs.get('xo').$UUIDsToKeys - // Connects to existing servers. for (let server of await this._servers.get()) { this.connectXenServer(server.id).catch(error => { @@ -299,6 +290,45 @@ export default class Xo extends EventEmitter { return server } + @autobind + _onXenAdd (xapiObjects) { + const {_objects: objects} = this + forEach(xapiObjects, (xapiObject, id) => { + const transform = xapiObjectsToXo[xapiObject.$type] + if (!transform) { + return + } + + const xoObject = transform(xapiObject) + xoObject.id = id + xoObject.ref = xapiObject.$ref + if (!xoObject.type) { + xoObject.type = xapiObject.$type + } + + const {$pool: pool} = xapiObject + Object.defineProperties(xoObject, { + poolRef: { value: pool.$ref }, + $poolId: { + enumerable: true, + value: pool.$id + } + }) + + objects.set(id, xoObject) + }) + } + + @autobind + _onXenRemove (xapiObjects) { + const {_objects: objects} = this + forEach(xapiObjects, (_, id) => { + if (objects.has(id)) { + objects.remove(id) + } + }) + } + // TODO the previous state should be marked as connected. async connectXenServer (id) { const server = (await this._getXenServer(id)).properties @@ -312,29 +342,14 @@ export default class Xo extends EventEmitter { }) const {objects} = xapi - objects.on('add', objects => { - this._xapis[xapi.pool.$id] = xapi + objects.on('add', this._onXenAdd) + objects.on('update', this._onXenAdd) + objects.on('remove', this._onXenRemove) - this._xobjs.set(objects, { - add: true, - update: false, - remove: false - }) - }) - objects.on('update', objects => { + // Each time objects are refreshed, registers the connection with + // the pool identifier. + objects.on('finish', () => { this._xapis[xapi.pool.$id] = xapi - - this._xobjs.set(objects, { - add: true, - update: true, - remove: false - }) - }) - objects.on('remove', objects => { - this._xobjs.removeWithPredicate(object => ( - object.genval && - object.genval.$id in objects - )) }) try { @@ -390,40 +405,50 @@ export default class Xo extends EventEmitter { // // TODO: should throw a NoSuchObject error on failure. getObject (key, type) { - // Gracefully handles UUIDs. - if (key in this._UUIDsToKeys) { - key = this._UUIDsToKeys[key] - } + const { + all, + indexes: { + byRef + } + } = this._objects - const obj = this._xobjs.get(key) + const obj = all[key] || byRef[key] + if (!obj) { + throw new NoSuchObject(key) + } if (type != null && ( isString(type) && type !== obj.type || !includes(type, obj.type) // Array )) { - throw new Error(`unexpected type ${obj.type} instead of ${type}`) + throw new NoSuchObject(key, type) } return obj } getObjects (keys) { + const { + all, + indexes: { + byRef + } + } = this._objects + // Returns all objects if no keys have been passed. if (!keys) { - return this._xobjs.get() - } - - // Resolves all UUIDs. - const {_UUIDsToKeys: UUIDsToKeys} = this - for (let i = 0, n = keys.length; i < n; ++i) { - const key = UUIDsToKeys[keys[i]] - if (key != null) { - keys[i] = key - } + return all } // Fetches all objects and ignores those missing. - return this._xobjs.get(keys, true) + const result = [] + forEach(keys, key => { + const object = all[key] || byRef[key] + if (object) { + result.push(object) + } + }) + return result } // ----------------------------------------------------------------- @@ -615,100 +640,56 @@ export default class Xo extends EventEmitter { _objects: objects } = this - const publicObjects = new XoView(objects, isObjectPublic) - publicObjects.on('add', objects => { + let entered, exited + function reset () { + entered = Object.create(null) + exited = Object.create(null) + } + reset() - }) - publicObjects.on('update', objects => { - - }) - publicObjects.on('remove', objects => { + function onAdd (items) { + forEach(items, (item, id) => { + entered[id] = item + }) + } + objects.on('add', onAdd) + objects.on('update', onAdd) + objects.on('remove', (items) => { + forEach(items, (_, id) => { + // We don't care about the value here, so we choose `0` + // because it is small in JSON. + exited[id] = 0 + }) }) - const persistentObjects = new XoView(objects, isObjectPersistent) - persistentObjects.on('add', objects => { + objects.on('finish', () => { + const enteredMessage = !isEmpty(entered) && { + type: 'enter', + items: entered + } + const exitedMessage = !isEmpty(exited) && { + type: 'exit', + items: exited + } - }) - persistentObjects.on('update', objects => { + if (!enteredMessage && !exitedMessage) { + return + } - }) - persistentObjects.on('remove', objects => { - - }) - } - - // When objects enter or exists, sends a notification to all - // connected clients. - // - // TODO: remove when all objects are in `this._objects`. - _watchXobjs () { - const { - _connections: connections, - _xobjs: xobjs - } = this - - let entered = {} - let exited = {} - - let dispatcherRegistered = false - const dispatcher = Bluebird.method(() => { - dispatcherRegistered = false - - if (!isEmpty(entered)) { - const enterParams = { - type: 'enter', - items: pluck(entered, 'val') - } - entered = {} - - for (let id in connections) { - const connection = connections[id] - - if (connection.has('user_id')) { - connection.notify('all', enterParams) + forEach(connections, connection => { + // Notifies only authenticated clients. + if (connection.has('user_id')) { + if (enteredMessage) { + connection.notify('all', enteredMessage) + } + if (exitedMessage) { + connection.notify('all', exitedMessage) } } - } + }) - if (!isEmpty(exited)) { - const exitParams = { - type: 'exit', - items: pluck(exited, 'val') - } - exited = {} - - for (let id in connections) { - const connection = connections[id] - - if (connection.has('user_id')) { - connection.notify('all', exitParams) - } - } - } - }) - - xobjs.on('any', (event, items) => { - if (!dispatcherRegistered) { - dispatcherRegistered = true - process.nextTick(dispatcher) - } - - if (event === 'exit') { - forEach(items, item => { - const {key} = item - - delete entered[key] - exited[key] = item - }) - } else { - forEach(items, item => { - const {key} = item - - delete exited[key] - entered[key] = item - }) - } + reset() }) } } From c141e92cc441c0901673b4dd0b7439f1fed2f5b1 Mon Sep 17 00:00:00 2001 From: Fabrice Marsaud Date: Wed, 27 May 2015 17:21:28 +0200 Subject: [PATCH 114/140] Group managment for ACLs (Mock. No implementation) --- src/api/group.js | 93 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 src/api/group.js diff --git a/src/api/group.js b/src/api/group.js new file mode 100644 index 000000000..fec8b941f --- /dev/null +++ b/src/api/group.js @@ -0,0 +1,93 @@ +// FIXME All methods are to implement + +export async function create ({name}) { + return Date.now() // Dummy id +} + +create.description = 'creates a new group' +create.permission = 'admin' +create.params = { + name: {type: 'string'} +} + +// Deletes an existing group. +async function delete_ ({id}) { + return true +} + +// delete is not a valid identifier. +export {delete_ as delete} + +delete_.description = 'deletes an existing group' +delete_.permission = 'admin' +delete_.params = { + id: {type: 'string'} +} + +export async function getAll () { + return [ + { + id: 'G1', + name: 'Groupe 1', + users: [] + }, + { + id: 'G2', + name: 'Groupe 2', + users: [] + } + ] +} + +delete_.description = 'returns all the existing group' +delete_.permission = 'admin' +delete_.params = { + id: {type: 'string'} +} + +// sets group.users with an array of user ids +export async function setUsers ({id, userIds}) { + return true +} + +setUsers.description = 'sets the users belonging to a group' +setUsers.permission = 'admin' +setUsers.params = { + id: {type: 'string'}, + userIds: {} +} + +// adds the user id to group.users +export async function addUser ({id, userId}) { + return true +} + +addUser.description = 'adds a user to a group' +addUser.permission = 'admin' +addUser.params = { + id: {type: 'string'}, + userId: {type: 'string'} +} + +// remove the user id from group.users +export async function removeUser ({id, userId}) { + return true +} + +removeUser.description = 'removes a user from a group' +removeUser.permission = 'admin' +removeUser.params = { + id: {type: 'string'}, + userId: {type: 'string'} +} + +export async function set ({id, name}) { + return true +} + +set.description = 'changes the properties of an existing group' +set.permission = 'admin' +set.params = { + id: { type: 'string' }, + name: { type: 'string', optional: true } +} From c0122aace75386d24f9a31b219d4da2468c73ef0 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 27 May 2015 18:25:18 +0200 Subject: [PATCH 115/140] Various fixes. --- src/xapi-objects-to-xo.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/xapi-objects-to-xo.js b/src/xapi-objects-to-xo.js index 12ccd3e73..6db26ad40 100644 --- a/src/xapi-objects-to-xo.js +++ b/src/xapi-objects-to-xo.js @@ -192,7 +192,7 @@ export function vm (obj) { if (!isRunning) { memory.size = dynamicMax - } else if (gmMemory) { + } else if (gmMemory && gmMemory.used) { memory.usage = +gmMemory.used memory.size = +gmMemory.total } else if (metrics) { @@ -281,9 +281,7 @@ export function sr (obj) { $container: ( obj.shared ? link(obj, 'pool') : - - // FIXME: find host for which host.PBDs includes obj.$ref - null + obj.$PBDs[0] && link(obj.$PBDs[0], 'host') ), $PBDs: link(obj, 'PBDs') } From fb2ca3bb19aa886766ba5a80f899d4128c859fac Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Wed, 27 May 2015 18:43:26 +0200 Subject: [PATCH 116/140] fix CPU parsing error in RRD --- src/api/host.coffee | 2 +- src/api/vm.coffee | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api/host.coffee b/src/api/host.coffee index 713bdfae1..785b9d603 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -276,7 +276,7 @@ stats = $coroutine ({host}) -> index = 0 $forEach(json.rrd.ds, (value, i) -> - if startsWith(value.name, 'cpu') + if /^cpu[0-9]+$/.test(value.name) cpusIndexes.push(i) else if startsWith(value.name, 'pif_eth') && endsWith(value.name, '_tx') pifsIndexes.push(i) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 9c50011ed..5e65fcdba 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -988,7 +988,7 @@ stats = $coroutine ({vm}) -> index = 0 $forEach(json.rrd.ds, (value, i) -> - if startsWith(value.name, 'cpu') + if /^cpu[0-9]+$/.test(value.name) cpusIndexes.push(i) else if startsWith(value.name, 'vif_') && endsWith(value.name, '_tx') vifsIndexes.push(i) From ac4686125f50bcd164b74fdfecd5c35a35655be8 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Wed, 27 May 2015 18:49:07 +0200 Subject: [PATCH 117/140] fix RRD fetching on VM view --- src/api/vm.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 5e65fcdba..276867a25 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -972,7 +972,7 @@ stats = $coroutine ({vm}) -> [response, body] = $wait $request { method: 'get' rejectUnauthorized: false - url: 'https://'+host.address+'/vm_rrd?session_id='+xapi.sessionId+'&uuid='+vm.UUID + url: 'https://'+host.address+'/vm_rrd?session_id='+xapi.sessionId+'&uuid='+vm.id } if response.statusCode isnt 200 From 4d3dfa1dcaca36012f12d9a27bdfb885a42b0163 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Wed, 27 May 2015 19:27:31 +0200 Subject: [PATCH 118/140] Typo. --- src/xapi-objects-to-xo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi-objects-to-xo.js b/src/xapi-objects-to-xo.js index 6db26ad40..c5d5b5f0d 100644 --- a/src/xapi-objects-to-xo.js +++ b/src/xapi-objects-to-xo.js @@ -276,7 +276,7 @@ export function sr (obj) { size: +obj.physical_size, SR_type: obj.type, usage: +obj.virtual_allocation, - VDI: link(obj, 'VDIs'), + VDIs: link(obj, 'VDIs'), $container: ( obj.shared ? From 35bf7dc48422dc160122af8d660ff6095aed91d0 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 11:40:56 +0200 Subject: [PATCH 119/140] Better message when a object param is not found. --- src/api.js | 32 ++++++++++++++------------------ src/xo.js | 2 +- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/api.js b/src/api.js index 36711b0f2..7245987bf 100644 --- a/src/api.js +++ b/src/api.js @@ -147,28 +147,24 @@ function resolveParams (method, params) { const isAdmin = this.user.hasPermission('admin') const promises = [] - try { - forEach(resolve, ([param, types], key) => { - const id = params[param] - if (id === undefined) { - return - } + forEach(resolve, ([param, types], key) => { + const id = params[param] + if (id === undefined) { + return + } - const object = this.getObject(params[param], types) + const object = this.getObject(params[param], types) - // This parameter has been handled, remove it. - delete params[param] + // This parameter has been handled, remove it. + delete params[param] - // Register this new value. - params[key] = object + // Register this new value. + params[key] = object - if (!isAdmin) { - promises.push(checkAuthorization.call(this, userId, object)) - } - }) - } catch (error) { - throw new NoSuchObject() - } + if (!isAdmin) { + promises.push(checkAuthorization.call(this, userId, object)) + } + }) return Bluebird.all(promises).return(params) } diff --git a/src/xo.js b/src/xo.js index 3d6976a14..c0daa2713 100644 --- a/src/xo.js +++ b/src/xo.js @@ -414,7 +414,7 @@ export default class Xo extends EventEmitter { const obj = all[key] || byRef[key] if (!obj) { - throw new NoSuchObject(key) + throw new NoSuchObject(key, type) } if (type != null && ( From 55a1c27d6da47e0e0e155597aa77f96bd16ff158 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 11:42:13 +0200 Subject: [PATCH 120/140] Fix VIF creation. --- src/api/vm.coffee | 20 ++++++-------------- src/xapi.js | 24 ++++++++++++++++++++++++ src/xo.js | 3 ++- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 276867a25..a7dbfd779 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -884,21 +884,13 @@ exports.attachDisk = attachDisk # FIXME: position should be optional and default to last. createInterface = $coroutine ({vm, network, position, mtu, mac}) -> - xapi = @getXAPI vm - - VIF_ref = $wait xapi.call 'VIF.create', { - VM: vm.ref - network: network.ref - device: position - MTU: mtu ? '1500' - MAC: mac ? '' - other_config: {} - qos_algorithm_type: '' - qos_algorithm_params: {} - } - - return $wait(xapi.call( 'VIF.get_record', VIF_ref)).uuid + vif = $wait @getXAPI(vm).createVirtualInterface(vm.id, network.id, { + mac, + mtu, + position + }) + return vif.$id createInterface.params = { vm: { type: 'string' } diff --git a/src/xapi.js b/src/xapi.js index 743c0e26d..7dabb0575 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -486,6 +486,30 @@ export default class Xapi extends XapiBase { // ================================================================= + async createVirtualInterface (vmId, networkId, { + mac = '', + mtu = 1500, + position = 0 + } = {}) { + const vm = this.getObject(vmId) + const network = this.getObject(networkId) + + const ref = await this.call('VIF.create', { + device: String(position), + MAC: String(mac), + MTU: String(mtu), + network: network.$ref, + other_config: {}, + qos_algorithm_params: {}, + qos_algorithm_type: '', + VM: vm.$ref + }) + + return await this._getOrWaitObject(ref) + } + + // ================================================================= + async _doDockerAction (vmId, action, containerId) { const vm = this.getObject(vmId) const host = vm.$resident_on diff --git a/src/xo.js b/src/xo.js index c0daa2713..476fbaed3 100644 --- a/src/xo.js +++ b/src/xo.js @@ -312,7 +312,8 @@ export default class Xo extends EventEmitter { $poolId: { enumerable: true, value: pool.$id - } + }, + ref: { value: xapiObject.$ref } }) objects.set(id, xoObject) From 8399edb4dc5b078e6898bc55347b0c1511b7bb2a Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 11:42:30 +0200 Subject: [PATCH 121/140] Fix vm.docker.version. --- src/xapi-objects-to-xo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi-objects-to-xo.js b/src/xapi-objects-to-xo.js index c5d5b5f0d..9280464c1 100644 --- a/src/xapi-objects-to-xo.js +++ b/src/xapi-objects-to-xo.js @@ -170,7 +170,7 @@ export function vm (obj) { enabled: true, info: info && parseXml(info).docker_info, process: process && parseXml(process).docker_ps, - version: version && parseXml(version).version + version: version && parseXml(version).docker_version } })(), From 790e67866c101a7c6493f8802fe253546a11e90d Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 12:25:59 +0200 Subject: [PATCH 122/140] Fix VM-template.template_info.disks. --- src/xapi-objects-to-xo.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/xapi-objects-to-xo.js b/src/xapi-objects-to-xo.js index 9280464c1..ca88bac03 100644 --- a/src/xapi-objects-to-xo.js +++ b/src/xapi-objects-to-xo.js @@ -238,7 +238,7 @@ export function vm (obj) { vm.template_info = { arch: otherConfig['install-arch'], disks: (function () { - const {xml} = otherConfig + const {disks: xml} = otherConfig if (!xml) { return [] } From 682804b1ad4499204765b98bfac8b2ba5802bf10 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 12:45:37 +0200 Subject: [PATCH 123/140] Fix consoles proxy. --- src/index.js | 26 ++------------------------ src/xapi.js | 12 ++++++++++++ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/index.js b/src/index.js index 2f6823d9d..e31b3ebe1 100644 --- a/src/index.js +++ b/src/index.js @@ -290,29 +290,6 @@ const setUpApi = (webServer, xo) => { // =================================================================== -const getVmConsoleUrl = (xo, id) => { - const vm = xo.getObject(id, ['VM', 'VM-controller']) - if (!vm || vm.power_state !== 'Running') { - return - } - - const {sessionId} = xo.getXAPI(vm) - - let url - forEach(vm.consoles, console => { - if (console.protocol === 'rfb') { - url = `${console.location}&session_id=${sessionId}` - return false - } - }) - - if (!url) { - throw new Error('VM console not found') - } - - return url -} - const CONSOLE_PROXY_PATH_RE = /^\/api\/consoles\/(.*)$/ const setUpConsoleProxy = (webServer, xo) => { @@ -326,8 +303,9 @@ const setUpConsoleProxy = (webServer, xo) => { return } + const [, id] = matches try { - const url = getVmConsoleUrl(xo, matches[1]) + const url = xo.getXAPI(id, ['VM', 'VM-controller']).getVmConsoleUrl(id) // FIXME: lost connection due to VM restart is not detected. webSocketServer.handleUpgrade(req, socket, head, connection => { diff --git a/src/xapi.js b/src/xapi.js index 7dabb0575..fce0f88c6 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -1,5 +1,6 @@ import createDebug from 'debug' import eventToPromise from 'event-to-promise' +import find from 'lodash.find' import forEach from 'lodash.foreach' import got from 'got' import map from 'lodash.map' @@ -440,6 +441,17 @@ export default class Xapi extends XapiBase { await this.call('VM.destroy', vm.$ref) } + getVmConsoleUrl (vmId) { + const vm = this.getObject(vmId) + + const console = find(vm.$consoles, { protocol: 'rfb' }) + if (!console) { + throw new Error('no RFB console found') + } + + return `${console.location}&session_id=${this.sessionId}` + } + // Returns a stream to the exported VM. async exportVm (vmId, {compress = true} = {}) { const vm = this.getObject(vmId) From 40423a054724c46de70841559b830ae33726d536 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 14:57:04 +0200 Subject: [PATCH 124/140] Set debug to xo:main only in production. --- xo-server.service | 1 + 1 file changed, 1 insertion(+) diff --git a/xo-server.service b/xo-server.service index 67bb3bc67..73ee79196 100644 --- a/xo-server.service +++ b/xo-server.service @@ -5,6 +5,7 @@ Description= XO Server After=network-online.target [Service] +Environment="DEBUG=xo:main" ExecStart=/usr/local/bin/xo-server Restart=always SyslogIdentifier=xo-server From 7d1d34d1ebb32664d9217294e3850498c8bc6c30 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 16:56:45 +0200 Subject: [PATCH 125/140] Remove unused code. --- src/api/group.js | 2 +- src/xo.js | 17 ----------------- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/src/api/group.js b/src/api/group.js index fec8b941f..2c4f0aa6b 100644 --- a/src/api/group.js +++ b/src/api/group.js @@ -2,7 +2,7 @@ export async function create ({name}) { return Date.now() // Dummy id -} +} create.description = 'creates a new group' create.permission = 'admin' diff --git a/src/xo.js b/src/xo.js index 476fbaed3..ad2c1286c 100644 --- a/src/xo.js +++ b/src/xo.js @@ -1,5 +1,4 @@ import Bluebird from 'bluebird' -import createDebug from 'debug' import forEach from 'lodash.foreach' import includes from 'lodash.includes' import isEmpty from 'lodash.isempty' @@ -26,10 +25,6 @@ import {Tokens} from './models/token' // =================================================================== -const debug = createDebug('xo:xo') - -// =================================================================== - class NoSuchAuthenticationToken extends NoSuchObject { constructor (id) { super(id, 'authentication token') @@ -50,18 +45,6 @@ class NoSuchXenServer extends NoSuchObject { // =================================================================== -const PERSITENT_TYPES = { - -} -const isObjectPersistent = object => object.$type in PERSITENT_TYPES - -const PUBLIC_TYPES = { - -} -const isObjectPublic = object => object.$type in PUBLIC_TYPES - -// =================================================================== - export default class Xo extends EventEmitter { constructor () { super() From 05063b76eb4d917a85eed432317973b2c08b6361 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 16:57:11 +0200 Subject: [PATCH 126/140] Initial role API. --- src/api/acl.js | 8 ++++---- src/api/group.js | 14 ++++++++++++++ src/api/role.js | 16 ++++++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 src/api/role.js diff --git a/src/api/acl.js b/src/api/acl.js index 5b0d993ae..f9e4c1896 100644 --- a/src/api/acl.js +++ b/src/api/acl.js @@ -18,8 +18,8 @@ getCurrent.description = 'get existing ACLs concerning current user' // ------------------------------------------------------------------- -export async function add ({subject, object}) { - await this.addAcl(subject, object) +export async function add ({subject, object, role}) { + await this.addAcl(subject, object, role) } add.permission = 'admin' @@ -33,8 +33,8 @@ add.description = 'add a new ACL entry' // ------------------------------------------------------------------- -export async function remove ({subject, object}) { - await this.removeAcl(subject, object) +export async function remove ({subject, object, role}) { + await this.removeAcl(subject, object, role) } remove.permission = 'admin' diff --git a/src/api/group.js b/src/api/group.js index 2c4f0aa6b..15410e49a 100644 --- a/src/api/group.js +++ b/src/api/group.js @@ -10,6 +10,8 @@ create.params = { name: {type: 'string'} } +// ------------------------------------------------------------------- + // Deletes an existing group. async function delete_ ({id}) { return true @@ -24,6 +26,8 @@ delete_.params = { id: {type: 'string'} } +// ------------------------------------------------------------------- + export async function getAll () { return [ { @@ -45,6 +49,8 @@ delete_.params = { id: {type: 'string'} } +// ------------------------------------------------------------------- + // sets group.users with an array of user ids export async function setUsers ({id, userIds}) { return true @@ -57,6 +63,8 @@ setUsers.params = { userIds: {} } +// ------------------------------------------------------------------- + // adds the user id to group.users export async function addUser ({id, userId}) { return true @@ -69,11 +77,15 @@ addUser.params = { userId: {type: 'string'} } +// ------------------------------------------------------------------- + // remove the user id from group.users export async function removeUser ({id, userId}) { return true } +// ------------------------------------------------------------------- + removeUser.description = 'removes a user from a group' removeUser.permission = 'admin' removeUser.params = { @@ -81,6 +93,8 @@ removeUser.params = { userId: {type: 'string'} } +// ------------------------------------------------------------------- + export async function set ({id, name}) { return true } diff --git a/src/api/role.js b/src/api/role.js new file mode 100644 index 000000000..a5a6749fc --- /dev/null +++ b/src/api/role.js @@ -0,0 +1,16 @@ +export async function getAll () { + return [ + { + id: 'r0', + name: 'Observer' + }, + { + id: 'r1', + name: 'User' + }, + { + id: 'r2', + name: 'Manager' + } + ] +} From c9eca5ec7ebbf5de6ede8dcb03886fd10902278e Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 18:08:36 +0200 Subject: [PATCH 127/140] ACLs have a role and existing ACLs are automatically upadted. --- src/api/role.js | 12 +++++----- src/models/acl.js | 57 ++++++++++++++++++++++++++++++++++++++++------- src/xo.js | 8 +++---- 3 files changed, 59 insertions(+), 18 deletions(-) diff --git a/src/api/role.js b/src/api/role.js index a5a6749fc..01fd30311 100644 --- a/src/api/role.js +++ b/src/api/role.js @@ -1,16 +1,16 @@ export async function getAll () { return [ { - id: 'r0', - name: 'Observer' + id: 'viewer', + name: 'Viewer' }, { - id: 'r1', - name: 'User' + id: 'operator', + name: 'Operator' }, { - id: 'r2', - name: 'Manager' + id: 'admin', + name: 'Admin' } ] } diff --git a/src/models/acl.js b/src/models/acl.js index 573df781e..0af9046b6 100644 --- a/src/models/acl.js +++ b/src/models/acl.js @@ -1,20 +1,30 @@ +import forEach from 'lodash.foreach' +import map from 'lodash.map' + import Collection from '../collection/redis' import Model from '../model' import {multiKeyHash} from '../utils' // =================================================================== +// Up until now, there were no roles, therefore the default role is +// used for existing entries. +const DEFAULT_ROLE = 'admin' + +// =================================================================== + export default class Acl extends Model {} -Acl.create = (subject, object) => { - return Acl.hash(subject, object).then(hash => new Acl({ +Acl.create = (subject, object, role) => { + return Acl.hash(subject, object, role).then(hash => new Acl({ id: hash, subject, - object + object, + role })) } -Acl.hash = (subject, object) => multiKeyHash(subject, object) +Acl.hash = (subject, object, role) => multiKeyHash(subject, object, role) // ------------------------------------------------------------------- @@ -23,11 +33,42 @@ export class Acls extends Collection { return Acl } - create (subject, object) { - return Acl.create(subject, object).then(acl => this.add(acl)) + create (subject, object, role) { + return Acl.create(subject, object, role).then(acl => this.add(acl)) } - delete (subject, object) { - return Acl.hash(subject, object).then(hash => this.remove(hash)) + delete (subject, object, role = DEFAULT_ROLE) { + return Acl.hash(subject, object, role).then(hash => this.remove(hash)) + } + + async get (properties) { + const acls = await super.get(properties) + + // Finds all records that are missing a role and need to be updated. + const toUpdate = [] + forEach(acls, acl => { + if (!acl.role) { + acl.role = DEFAULT_ROLE + toUpdate.push(acl) + } + }) + if (toUpdate.length) { + // Removes all existing entries. + await this.remove(map(toUpdate, 'id')) + + // Compute the new ids (new hashes). + const {hash} = Acl + await Promise.all(map( + toUpdate, + (acl) => hash(acl.subject, acl.object, acl.role).then(id => { + acl.id = id + }) + )) + + // Inserts the new (updated) entries. + await this.add(toUpdate) + } + + return acls } } diff --git a/src/xo.js b/src/xo.js index ad2c1286c..06bae4098 100644 --- a/src/xo.js +++ b/src/xo.js @@ -136,12 +136,12 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- - async addAcl (subject, object) { + async addAcl (subject, object, role) { subject = (await this.getUser(subject)).id object = this.getObject(object).id try { - await this._acls.create(subject, object) + await this._acls.create(subject, object, role) } catch (error) { if (!(error instanceof ModelAlreadyExists)) { throw error @@ -149,8 +149,8 @@ export default class Xo extends EventEmitter { } } - async removeAcl (subject, object) { - await this._acls.delete(subject, object) + async removeAcl (subject, object, role) { + await this._acls.delete(subject, object, role) } async getAclsForSubject (subject) { From 621e8e89a51a74efbb7af31117b332114696bdc5 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 19:26:16 +0200 Subject: [PATCH 128/140] Implements groups. --- src/api/group.js | 27 +++++------------ src/models/group.js | 47 ++++++++++++++++++++++++++++++ src/xo.js | 70 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+), 20 deletions(-) create mode 100644 src/models/group.js diff --git a/src/api/group.js b/src/api/group.js index 15410e49a..52bed45f0 100644 --- a/src/api/group.js +++ b/src/api/group.js @@ -1,7 +1,5 @@ -// FIXME All methods are to implement - export async function create ({name}) { - return Date.now() // Dummy id + return (await this.createGroup({name})).id } create.description = 'creates a new group' @@ -14,7 +12,7 @@ create.params = { // Deletes an existing group. async function delete_ ({id}) { - return true + await this.deleteGroup(id) } // delete is not a valid identifier. @@ -29,18 +27,7 @@ delete_.params = { // ------------------------------------------------------------------- export async function getAll () { - return [ - { - id: 'G1', - name: 'Groupe 1', - users: [] - }, - { - id: 'G2', - name: 'Groupe 2', - users: [] - } - ] + return await this._groups.get() } delete_.description = 'returns all the existing group' @@ -53,7 +40,7 @@ delete_.params = { // sets group.users with an array of user ids export async function setUsers ({id, userIds}) { - return true + await this.setGroupUsers(id, userIds) } setUsers.description = 'sets the users belonging to a group' @@ -67,7 +54,7 @@ setUsers.params = { // adds the user id to group.users export async function addUser ({id, userId}) { - return true + await this.addUserToGroup(userId, id) } addUser.description = 'adds a user to a group' @@ -81,7 +68,7 @@ addUser.params = { // remove the user id from group.users export async function removeUser ({id, userId}) { - return true + await this.removeUserFromGroup(userId, id) } // ------------------------------------------------------------------- @@ -96,7 +83,7 @@ removeUser.params = { // ------------------------------------------------------------------- export async function set ({id, name}) { - return true + await this.updateGroup(id, {name}) } set.description = 'changes the properties of an existing group' diff --git a/src/models/group.js b/src/models/group.js new file mode 100644 index 000000000..8a7467104 --- /dev/null +++ b/src/models/group.js @@ -0,0 +1,47 @@ +import forEach from 'lodash.foreach' + +import Collection from '../collection/redis' +import Model from '../model' + +// =================================================================== + +export default class Group extends Model {} + +// =================================================================== + +export class Groups extends Collection { + get Model () { + return Group + } + + create (name) { + return this.add(new Group({ + name, + users: '[]' + })) + } + + async save (group) { + // Serializes. + group.users = JSON.stringify(group.users) + + return await this.update(group) + } + + async get (properties) { + const groups = await super.get(properties) + + // Deserializes. + forEach(groups, group => { + const {users} = group + try { + group.users = JSON.parse(users) + } catch (error) { + console.warn('cannot parse group.user:', users) + group.users = [] + } + }) + + return groups + } +} diff --git a/src/xo.js b/src/xo.js index 06bae4098..5c0e724bd 100644 --- a/src/xo.js +++ b/src/xo.js @@ -1,4 +1,5 @@ import Bluebird from 'bluebird' +import filter from 'lodash.filter' import forEach from 'lodash.foreach' import includes from 'lodash.includes' import isEmpty from 'lodash.isempty' @@ -18,6 +19,7 @@ import Xapi from './xapi' import {Acls} from './models/acl' import {autobind} from './decorators' import {generateToken} from './utils' +import {Groups} from './models/group' import {JsonRpcError, NoSuchObject, Unauthorized} from './api-errors' import {ModelAlreadyExists} from './collection' import {Servers} from './models/server' @@ -31,6 +33,12 @@ class NoSuchAuthenticationToken extends NoSuchObject { } } +class NoSuchGroup extends NoSuchObject { + constructor (id) { + super(id, 'group') + } +} + class NoSuchUser extends NoSuchObject { constructor (id) { super(id, 'user') @@ -56,6 +64,7 @@ export default class Xo extends EventEmitter { // // TODO: remove and put everything in the `_objects` collection. this._acls = null + this._groups = null this._servers = null this._tokens = null this._users = null @@ -90,6 +99,10 @@ export default class Xo extends EventEmitter { prefix: 'xo:acl', indexes: ['subject', 'object'] }) + this._groups = new Groups({ + connection: redis, + prefix: 'xo:group' + }) this._servers = new Servers({ connection: redis, prefix: 'xo:server', @@ -211,6 +224,63 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- + async createGroup ({name}) { + // TODO: use plain objects. + const group = (await this._groups.create(name)).properties + + group.users = JSON.parse(group.users) + return group + } + + async deleteGroup (id) { + if (!await this._groups.remove(id)) { + throw new NoSuchGroup(id) + } + } + + async updateGroup (id, {name}) { + const group = await this.getGroup(id) + + if (name) group.name = name + + await this._groups.save(group) + } + + async getGroup (id) { + const group = (await this._groups.first(id)).properties + if (!group) { + throw new NoSuchGroup(id) + } + + return group + } + + async addUserToGroup (userId, groupId) { + const group = await this.getGroup(groupId) + + group.users.push(userId) + + await this._groupss.save(group) + } + + async removeUserFromGroup (userId, groupId) { + const group = await this.getGroup(groupId) + + group.users = filter(group.users, id => id !== userId) + + await this._groups.save(group) + } + + async setGroupUsers (groupId, userIds) { + const group = await this.getGroup(groupId) + + group.users = userIds + + await this._groups.save(group) + } + + // ----------------------------------------------------------------- + async createAuthenticationToken ({userId}) { // TODO: use plain objects const token = await this._tokens.generate(userId) From cbd0b9db1d7a7effbef1600163337b3852069614 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 20:35:24 +0200 Subject: [PATCH 129/140] Users must also linked to their groups. --- src/index.js | 2 +- src/models/group.js | 2 +- src/models/user.js | 25 +++++++++++++++++++++++++ src/utils.js | 1 + src/xo.js | 42 +++++++++++++++++++++++++++++++++--------- 5 files changed, 61 insertions(+), 11 deletions(-) diff --git a/src/index.js b/src/index.js index e31b3ebe1..f89213417 100644 --- a/src/index.js +++ b/src/index.js @@ -210,7 +210,7 @@ const apiHelpers = { // Handles both properties and wrapped models. const properties = user.properties || user - return pick(properties, 'id', 'email', 'permission') + return pick(properties, 'id', 'email', 'groups', 'permission') }, getServerPublicProperties (server) { diff --git a/src/models/group.js b/src/models/group.js index 8a7467104..372cb6ce7 100644 --- a/src/models/group.js +++ b/src/models/group.js @@ -37,7 +37,7 @@ export class Groups extends Collection { try { group.users = JSON.parse(users) } catch (error) { - console.warn('cannot parse group.user:', users) + console.warn('cannot parse group.users:', users) group.users = [] } }) diff --git a/src/models/user.js b/src/models/user.js index 207ad1c39..c74631155 100644 --- a/src/models/user.js +++ b/src/models/user.js @@ -1,3 +1,4 @@ +import forEach from 'lodash.foreach' import {hash, needsRehash, verify} from 'hashy' import Collection from '../collection/redis' @@ -65,4 +66,28 @@ export class Users extends Collection { return this.add(user) } + + async save (user) { + // Serializes. + user.groups = JSON.stringify(user.groups) + + return await this.update(user) + } + + async get (properties) { + const users = await super.get(properties) + + // Deserializes + forEach(users, user => { + const {groups} = user + try { + user.groups = groups ? JSON.parse(groups) : [] + } catch (_) { + console.warn('cannot parse user.groups:', groups) + user.groups = [] + } + }) + + return users + } } diff --git a/src/utils.js b/src/utils.js index 07171b690..031e54ee0 100644 --- a/src/utils.js +++ b/src/utils.js @@ -95,6 +95,7 @@ export const pFinally = (promise, cb) => { } // ------------------------------------------------------------------- + export function parseSize (size) { let bytes = humanFormat.parse.raw(size, { scale: 'binary' }) if (bytes.unit && bytes.unit !== 'B') { diff --git a/src/xo.js b/src/xo.js index 5c0e724bd..737855875 100644 --- a/src/xo.js +++ b/src/xo.js @@ -4,6 +4,7 @@ import forEach from 'lodash.foreach' import includes from 'lodash.includes' import isEmpty from 'lodash.isempty' import isString from 'lodash.isstring' +import map from 'lodash.map' import proxyRequest from 'proxy-http-request' import XoCollection from 'xo-collection' import XoUniqueIndex from 'xo-collection/unique-index' @@ -203,7 +204,7 @@ export default class Xo extends EventEmitter { if (password) user.setPassword(password) if (permission) user.set('permission', permission) - await this._users.update(user) + await this._users.save(user.properties) } // Merge this method in getUser() when plain objects. @@ -247,36 +248,59 @@ export default class Xo extends EventEmitter { } async getGroup (id) { - const group = (await this._groups.first(id)).properties + const group = (await this._groups.first(id)) if (!group) { throw new NoSuchGroup(id) } - return group + return group.properties } async addUserToGroup (userId, groupId) { - const group = await this.getGroup(groupId) + const [user, group] = await Promise.all([ + this.getUser(userId), + this.getGroup(groupId) + ]) + user.groups.push(groupId) group.users.push(userId) - await this._groupss.save(group) + await Promise.all([ + this._users.save(user), + this._groups.save(group) + ]) } async removeUserFromGroup (userId, groupId) { - const group = await this.getGroup(groupId) + const [user, group] = await Promise.all([ + this.getUser(userId), + this.getGroup(groupId) + ]) + user.groups = filter(user.groups, id => id !== groupId) group.users = filter(group.users, id => id !== userId) - await this._groups.save(group) + await Promise.all([ + this._users.save(user), + this._groups.save(group) + ]) } async setGroupUsers (groupId, userIds) { - const group = await this.getGroup(groupId) + const [users, group] = await Promise.all([ + Promise.all(map(userIds, this.getUser, this)), + this.getGroup(groupId) + ]) + forEach(users, user => { + user.groups.push(groupId) + }) group.users = userIds - await this._groups.save(group) + await Promise.all([ + Promise.all(map(users, this._users.save, this._users)), + this._groups.save(group) + ]) } // ----------------------------------------------------------------- From a4e03daeeeadd1c539a631944a004404d79e3356 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 22:14:20 +0200 Subject: [PATCH 130/140] Various updates. --- src/api.js | 38 ++++++++----- src/api/acl.js | 14 +++-- src/api/role.js | 15 +---- src/api/sr.js | 2 +- src/models/acl.js | 30 +++++----- src/xo.js | 136 +++++++++++++++++++++++++++++++++++++++++----- 6 files changed, 171 insertions(+), 64 deletions(-) diff --git a/src/api.js b/src/api.js index 7245987bf..6af27c793 100644 --- a/src/api.js +++ b/src/api.js @@ -74,9 +74,9 @@ function authorized () {} // throw new Unauthorized() // } function checkMemberAuthorization (member) { - return function (userId, object) { + return function (userId, object, permission) { const memberObject = this.getObject(object[member]) - return checkAuthorization.call(this, userId, memberObject) + return checkAuthorization.call(this, userId, memberObject, permission) } } @@ -93,38 +93,44 @@ const checkAuthorizationByTypes = { // Access to a VDI is granted if the user has access to the // containing SR or to a linked VM. - VDI (userId, vdi) { + VDI (userId, vdi, permission) { // Check authorization for each of the connected VMs. const promises = map(this.getObjects(vdi.$VBDs, 'VBD'), vbd => { const vm = this.getObject(vbd.VM, 'VM') - return checkAuthorization.call(this, userId, vm) + return checkAuthorization.call(this, userId, vm, permission) }) // Check authorization for the containing SR. const sr = this.getObject(vdi.$SR, 'SR') - promises.push(checkAuthorization.call(this, userId, sr)) + promises.push(checkAuthorization.call(this, userId, sr, permission)) // We need at least one success - return Bluebird.any(promises).catch(function (aggregateError) { - throw aggregateError[0] - }) + return Bluebird.any(promises) }, - VIF (userId, vif) { + VIF (userId, vif, permission) { const network = this.getObject(vif.$network) const vm = this.getObject(vif.$VM) return Bluebird.any([ - checkAuthorization.call(this, userId, network), - checkAuthorization.call(this, userId, vm) + checkAuthorization.call(this, userId, network, permission), + checkAuthorization.call(this, userId, vm, permission) ]) }, 'VM-snapshot': checkMemberAuthorization('$snapshot_of') } +function throwIfFail (success) { + if (!success) { + // We don't care about an error object. + /* eslint no-throw-literal: 0 */ + throw null + } +} + function defaultCheckAuthorization (userId, object) { - return this.canAccess(userId, object.id) + return this.canAccess(userId, object.id).then(throwIfFail) } checkAuthorization = Bluebird.method(function (userId, object) { @@ -147,7 +153,7 @@ function resolveParams (method, params) { const isAdmin = this.user.hasPermission('admin') const promises = [] - forEach(resolve, ([param, types], key) => { + forEach(resolve, ([param, types, permission], key) => { const id = params[param] if (id === undefined) { return @@ -162,11 +168,13 @@ function resolveParams (method, params) { params[key] = object if (!isAdmin) { - promises.push(checkAuthorization.call(this, userId, object)) + promises.push(checkAuthorization.call(this, userId, object, permission)) } }) - return Bluebird.all(promises).return(params) + return Bluebird.all(promises).catch(() => { + throw new Unauthorized() + }).return(params) } // =================================================================== diff --git a/src/api/acl.js b/src/api/acl.js index f9e4c1896..d153f155c 100644 --- a/src/api/acl.js +++ b/src/api/acl.js @@ -18,30 +18,32 @@ getCurrent.description = 'get existing ACLs concerning current user' // ------------------------------------------------------------------- -export async function add ({subject, object, role}) { - await this.addAcl(subject, object, role) +export async function add ({subject, object, action = 'view'}) { + await this.addAcl(subject, object, action) } add.permission = 'admin' add.params = { subject: { type: 'string' }, - object: { type: 'string' } + object: { type: 'string' }, + // action: { type: 'string' } } add.description = 'add a new ACL entry' // ------------------------------------------------------------------- -export async function remove ({subject, object, role}) { - await this.removeAcl(subject, object, role) +export async function remove ({subject, object, action}) { + await this.removeAcl(subject, object, action) } remove.permission = 'admin' remove.params = { subject: { type: 'string' }, - object: { type: 'string' } + object: { type: 'string' }, + action: { type: 'string' } } remove.description = 'remove an existing ACL entry' diff --git a/src/api/role.js b/src/api/role.js index 01fd30311..6e5d13b14 100644 --- a/src/api/role.js +++ b/src/api/role.js @@ -1,16 +1,3 @@ export async function getAll () { - return [ - { - id: 'viewer', - name: 'Viewer' - }, - { - id: 'operator', - name: 'Operator' - }, - { - id: 'admin', - name: 'Admin' - } - ] + return await this.getRoles() } diff --git a/src/api/sr.js b/src/api/sr.js index 664b76042..5f2f6fa49 100644 --- a/src/api/sr.js +++ b/src/api/sr.js @@ -20,7 +20,7 @@ set.params = { } set.resolve = { - sr: ['id', 'SR'] + sr: ['id', 'SR', 'operate'] } // ------------------------------------------------------------------- diff --git a/src/models/acl.js b/src/models/acl.js index 0af9046b6..284282144 100644 --- a/src/models/acl.js +++ b/src/models/acl.js @@ -7,24 +7,24 @@ import {multiKeyHash} from '../utils' // =================================================================== -// Up until now, there were no roles, therefore the default role is -// used for existing entries. -const DEFAULT_ROLE = 'admin' +// Up until now, there were no actions, therefore the default +// action is used to update existing entries. +const DEFAULT_ACTION = 'admin' // =================================================================== export default class Acl extends Model {} -Acl.create = (subject, object, role) => { - return Acl.hash(subject, object, role).then(hash => new Acl({ +Acl.create = (subject, object, action) => { + return Acl.hash(subject, object, action).then(hash => new Acl({ id: hash, subject, object, - role + action })) } -Acl.hash = (subject, object, role) => multiKeyHash(subject, object, role) +Acl.hash = (subject, object, action) => multiKeyHash(subject, object, action) // ------------------------------------------------------------------- @@ -33,22 +33,22 @@ export class Acls extends Collection { return Acl } - create (subject, object, role) { - return Acl.create(subject, object, role).then(acl => this.add(acl)) + create (subject, object, action) { + return Acl.create(subject, object, action).then(acl => this.add(acl)) } - delete (subject, object, role = DEFAULT_ROLE) { - return Acl.hash(subject, object, role).then(hash => this.remove(hash)) + delete (subject, object, action) { + return Acl.hash(subject, object, action).then(hash => this.remove(hash)) } async get (properties) { const acls = await super.get(properties) - // Finds all records that are missing a role and need to be updated. + // Finds all records that are missing a action and need to be updated. const toUpdate = [] forEach(acls, acl => { - if (!acl.role) { - acl.role = DEFAULT_ROLE + if (!acl.action) { + acl.action = DEFAULT_ACTION toUpdate.push(acl) } }) @@ -60,7 +60,7 @@ export class Acls extends Collection { const {hash} = Acl await Promise.all(map( toUpdate, - (acl) => hash(acl.subject, acl.object, acl.role).then(id => { + (acl) => hash(acl.subject, acl.object, acl.action).then(id => { acl.id = id }) )) diff --git a/src/xo.js b/src/xo.js index 737855875..b1d302236 100644 --- a/src/xo.js +++ b/src/xo.js @@ -4,6 +4,7 @@ import forEach from 'lodash.foreach' import includes from 'lodash.includes' import isEmpty from 'lodash.isempty' import isString from 'lodash.isstring' +import keys from 'lodash.keys' import map from 'lodash.map' import proxyRequest from 'proxy-http-request' import XoCollection from 'xo-collection' @@ -21,7 +22,7 @@ import {Acls} from './models/acl' import {autobind} from './decorators' import {generateToken} from './utils' import {Groups} from './models/group' -import {JsonRpcError, NoSuchObject, Unauthorized} from './api-errors' +import {JsonRpcError, NoSuchObject} from './api-errors' import {ModelAlreadyExists} from './collection' import {Servers} from './models/server' import {Tokens} from './models/token' @@ -176,9 +177,44 @@ export default class Xo extends EventEmitter { return this._acls.get() } - async canAccess (userId, objectId) { - if (!await this._acls.exists({subject: userId, object: objectId})) { - throw new Unauthorized() + async hasPermission (userId, objectId, permission) { + const user = await this.getUser() + + // Special case for super XO administrators. + // + // TODO: restore when necessary, for now it is already implemented + // in resolveParams(). + // if (user.permission === 'admin') { + // return true + // } + + const subjects = user.groups.concat(userId) + const actions = (await this.getRolesForPermission(permission)).concat(permission) + + const promises = [] + { + const {_acls: acls} = this + const throwIfFail = function (success) { + if (!success) { + // We don't care about an error object. + /* eslint no-throw-literal: 0 */ + throw null + } + } + forEach(subjects, subject => { + forEach(actions, action => { + promises.push( + acls.exists({subject, object: objectId, action}).then(throwIfFail) + ) + }) + }) + } + + try { + await Bluebird.any(promises) + return true + } catch (_) { + return false } } @@ -262,8 +298,15 @@ export default class Xo extends EventEmitter { this.getGroup(groupId) ]) - user.groups.push(groupId) - group.users.push(userId) + const {groups} = user + if (!includes(groups, groupId)) { + user.groups.push(groupId) + } + + const {users} = group + if (!includes(users, userId)) { + group.users.push(userId) + } await Promise.all([ this._users.save(user), @@ -277,6 +320,7 @@ export default class Xo extends EventEmitter { this.getGroup(groupId) ]) + // TODO: maybe not iterating through the whole arrays? user.groups = filter(user.groups, id => id !== groupId) group.users = filter(group.users, id => id !== userId) @@ -287,24 +331,90 @@ export default class Xo extends EventEmitter { } async setGroupUsers (groupId, userIds) { - const [users, group] = await Promise.all([ - Promise.all(map(userIds, this.getUser, this)), - this.getGroup(groupId) + const group = await this.getGroup(groupId) + + const newUsersIds = Object.create(null) + const oldUsersIds = Object.create(null) + forEach(userIds, id => { + newUsersIds[id] = null + }) + forEach(group.users, id => { + if (id in newUsersIds) { + delete newUsersIds[id] + } else { + oldUsersIds[id] = null + } + }) + + const [newUsers, oldUsers] = await Promise.all([ + Promise.all(map(newUsersIds, (_, id) => this.getUser(id))), + Promise.all(map(oldUsersIds, (_, id) => this.getUser(id))) ]) - forEach(users, user => { - user.groups.push(groupId) + forEach(newUsers, user => { + const {groups} = user + if (!includes(groups, groupId)) { + user.groups.push(groupId) + } }) - group.users = userIds + forEach(oldUsers, user => { + user.groups = filter(user.groups, id => id !== groupId) + }) + + // Better than using userIds because we avoid duplicates + group.users = keys(newUsersIds) await Promise.all([ - Promise.all(map(users, this._users.save, this._users)), + Promise.all(map(newUsers, this._users.save, this._users)), + Promise.all(map(oldUsers, this._users.save, this._users)), this._groups.save(group) ]) } // ----------------------------------------------------------------- + // TODO: delete when merged with the new collection. + async getRoles () { + return [ + { + id: 'viewer', + name: 'Viewer', + permissions: [ + 'view' + ] + }, + { + id: 'operator', + name: 'Operator', + permissions: [ + 'view', + 'operate' + ] + }, + { + id: 'admin', + name: 'Admin', + permissions: [ + 'view', + 'operate', + 'administrate' + ] + } + ] + } + + // Returns an array of permission for a role. + // + // If not a role, it will return undefined. + async resolveRolePermissions (id) { + const role = (await this.getRoles())[id] + if (role) { + return role.permissions + } + } + + // ----------------------------------------------------------------- + async createAuthenticationToken ({userId}) { // TODO: use plain objects const token = await this._tokens.generate(userId) From aa1ca3be644a2076ffcc058f38ef5d7c8f6a2372 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 22:32:30 +0200 Subject: [PATCH 131/140] Various updates. --- src/api.js | 14 ++++++++------ src/collection/redis.js | 4 ++-- src/models/group.js | 4 ++++ src/xo.js | 15 ++++++--------- 4 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/api.js b/src/api.js index 6af27c793..632065f43 100644 --- a/src/api.js +++ b/src/api.js @@ -71,7 +71,9 @@ let checkAuthorization function authorized () {} // function forbiddden () { -// throw new Unauthorized() +// // We don't care about an error object. +// /* eslint no-throw-literal: 0 */ +// throw null // } function checkMemberAuthorization (member) { return function (userId, object, permission) { @@ -129,13 +131,13 @@ function throwIfFail (success) { } } -function defaultCheckAuthorization (userId, object) { - return this.canAccess(userId, object.id).then(throwIfFail) +function defaultCheckAuthorization (userId, object, permission) { + return this.canAccess(userId, object.id, permission).then(throwIfFail) } -checkAuthorization = Bluebird.method(function (userId, object) { +checkAuthorization = Bluebird.method(function (userId, object, permission) { const fn = checkAuthorizationByTypes[object.type] || defaultCheckAuthorization - return fn.call(this, userId, object) + return fn.call(this, userId, object, permission) }) function resolveParams (method, params) { @@ -153,7 +155,7 @@ function resolveParams (method, params) { const isAdmin = this.user.hasPermission('admin') const promises = [] - forEach(resolve, ([param, types, permission], key) => { + forEach(resolve, ([param, types, permission = 'administrate'], key) => { const id = params[param] if (id === undefined) { return diff --git a/src/collection/redis.js b/src/collection/redis.js index 47b89f44f..d06e28592 100644 --- a/src/collection/redis.js +++ b/src/collection/redis.js @@ -63,12 +63,12 @@ export default class Redis extends Collection { // TODO: remove “replace” which is a temporary measure, implement // “set()” instead. - const {indexes, prefix, redis} = this + const {indexes, prefix, redis, idPrefix = ''} = this return Bluebird.map(models, coroutine(function * (model) { // Generate a new identifier if necessary. if (model.id === undefined) { - model.id = String(yield redis.incr(prefix + '_id')) + model.id = idPrefix + String(yield redis.incr(prefix + '_id')) } const success = yield redis.sadd(prefix + '_ids', model.id) diff --git a/src/models/group.js b/src/models/group.js index 372cb6ce7..973b8635a 100644 --- a/src/models/group.js +++ b/src/models/group.js @@ -14,6 +14,10 @@ export class Groups extends Collection { return Group } + get idPrefix () { + return 'group:' + } + create (name) { return this.add(new Group({ name, diff --git a/src/xo.js b/src/xo.js index b1d302236..8f87ec66a 100644 --- a/src/xo.js +++ b/src/xo.js @@ -151,12 +151,9 @@ export default class Xo extends EventEmitter { // ----------------------------------------------------------------- - async addAcl (subject, object, role) { - subject = (await this.getUser(subject)).id - object = this.getObject(object).id - + async addAcl (subjectId, objectId, action) { try { - await this._acls.create(subject, object, role) + await this._acls.create(subjectId, objectId, action) } catch (error) { if (!(error instanceof ModelAlreadyExists)) { throw error @@ -164,12 +161,12 @@ export default class Xo extends EventEmitter { } } - async removeAcl (subject, object, role) { - await this._acls.delete(subject, object, role) + async removeAcl (subjectId, objectId, action) { + await this._acls.delete(subjectId, objectId, action) } - async getAclsForSubject (subject) { - return this._acls.get({ subject }) + async getAclsForSubject (subjectId) { + return this._acls.get({ subject: subjectId }) } // TODO: remove when new collection. From eb25cf65ddace5b39f967480b73a9aa1fea4cc05 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 22:42:57 +0200 Subject: [PATCH 132/140] acl.getCurrent() handles groups. --- src/api/acl.js | 2 +- src/xo.js | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/api/acl.js b/src/api/acl.js index d153f155c..96003a466 100644 --- a/src/api/acl.js +++ b/src/api/acl.js @@ -9,7 +9,7 @@ get.description = 'get existing ACLs' // ------------------------------------------------------------------- export async function getCurrent () { - return await this.getAclsForSubject(this.session.get('user_id')) + return await this.getAclsForUser(this.session.get('user_id')) } getCurrent.permission = '' diff --git a/src/xo.js b/src/xo.js index 8f87ec66a..9056af57e 100644 --- a/src/xo.js +++ b/src/xo.js @@ -165,8 +165,23 @@ export default class Xo extends EventEmitter { await this._acls.delete(subjectId, objectId, action) } - async getAclsForSubject (subjectId) { - return this._acls.get({ subject: subjectId }) + async getAclsForUser (userId) { + const subjects = (await this.getUser(userId)).groups.concat(userId) + + const acls = [] + const pushAcls = (function (push) { + return function (entries) { + push.apply(acls, entries) + } + })(acls.push) + + const {_acls: collection} = this + await Promise.all(map( + subjects, + subject => collection.get({subject}).then(pushAcls) + )) + + return acls } // TODO: remove when new collection. From bfe5b71f190813d8c67c956147b9bd27efd5b5af Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 23:12:32 +0200 Subject: [PATCH 133/140] Various updates. --- src/api/acl.js | 4 ++-- src/api/test.js | 20 ++++++++++++++++++++ src/models/acl.js | 4 ++++ src/xo.js | 25 ++++++++++++++----------- 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/src/api/acl.js b/src/api/acl.js index 96003a466..9aeb01855 100644 --- a/src/api/acl.js +++ b/src/api/acl.js @@ -18,7 +18,7 @@ getCurrent.description = 'get existing ACLs concerning current user' // ------------------------------------------------------------------- -export async function add ({subject, object, action = 'view'}) { +export async function add ({subject, object, action}) { await this.addAcl(subject, object, action) } @@ -27,7 +27,7 @@ add.permission = 'admin' add.params = { subject: { type: 'string' }, object: { type: 'string' }, - // action: { type: 'string' } + action: { type: 'string' } } add.description = 'add a new ACL entry' diff --git a/src/api/test.js b/src/api/test.js index 20588efad..6ecd503b3 100644 --- a/src/api/test.js +++ b/src/api/test.js @@ -2,6 +2,26 @@ import {delay} from 'bluebird' // =================================================================== +export function hasPermission ({userId, objectId, permission}) { + return this.hasPermission(userId, objectId, permission) +} + +hasPermission.permission = 'admin' + +hasPermission.params = { + userId: { + type: 'string' + }, + objectId: { + type: 'string' + }, + permission: { + type: 'string' + } +} + +// ------------------------------------------------------------------- + export function wait ({duration, returnValue}) { return delay(returnValue, +duration) } diff --git a/src/models/acl.js b/src/models/acl.js index 284282144..4e0f17289 100644 --- a/src/models/acl.js +++ b/src/models/acl.js @@ -41,6 +41,10 @@ export class Acls extends Collection { return Acl.hash(subject, object, action).then(hash => this.remove(hash)) } + aclExists (subject, object, action) { + return Acl.hash(subject, object, action).then(hash => this.exists(hash)) + } + async get (properties) { const acls = await super.get(properties) diff --git a/src/xo.js b/src/xo.js index 9056af57e..744cadd6d 100644 --- a/src/xo.js +++ b/src/xo.js @@ -190,7 +190,7 @@ export default class Xo extends EventEmitter { } async hasPermission (userId, objectId, permission) { - const user = await this.getUser() + const user = await this.getUser(userId) // Special case for super XO administrators. // @@ -201,7 +201,7 @@ export default class Xo extends EventEmitter { // } const subjects = user.groups.concat(userId) - const actions = (await this.getRolesForPermission(permission)).concat(permission) + let actions = (await this.getRolesForPermission(permission)).concat(permission) const promises = [] { @@ -216,7 +216,7 @@ export default class Xo extends EventEmitter { forEach(subjects, subject => { forEach(actions, action => { promises.push( - acls.exists({subject, object: objectId, action}).then(throwIfFail) + acls.aclExists(subject, objectId, action).then(throwIfFail) ) }) }) @@ -415,14 +415,17 @@ export default class Xo extends EventEmitter { ] } - // Returns an array of permission for a role. - // - // If not a role, it will return undefined. - async resolveRolePermissions (id) { - const role = (await this.getRoles())[id] - if (role) { - return role.permissions - } + // Returns an array of roles which have a given permission. + async getRolesForPermission (permission) { + const roles = [] + + forEach(await this.getRoles(), role => { + if (includes(role.permissions, permission)) { + roles.push(role.id) + } + }) + + return roles } // ----------------------------------------------------------------- From 3369ab601a2489749e321162381f7ee591da89d7 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Thu, 28 May 2015 23:26:07 +0200 Subject: [PATCH 134/140] Stupide error -_-". --- src/api.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api.js b/src/api.js index 632065f43..64292a0c2 100644 --- a/src/api.js +++ b/src/api.js @@ -132,7 +132,7 @@ function throwIfFail (success) { } function defaultCheckAuthorization (userId, object, permission) { - return this.canAccess(userId, object.id, permission).then(throwIfFail) + return this.hasPermission(userId, object.id, permission).then(throwIfFail) } checkAuthorization = Bluebird.method(function (userId, object, permission) { From c91a890d4282279e75712f746b1a5161a7a2b6a9 Mon Sep 17 00:00:00 2001 From: Olivier Lambert Date: Fri, 29 May 2015 09:35:20 +0200 Subject: [PATCH 135/140] add ACLs in objects --- src/api/disk.js | 2 +- src/api/docker.js | 6 ++-- src/api/host.coffee | 24 ++++++++-------- src/api/message.coffee | 2 +- src/api/pbd.coffee | 6 ++-- src/api/pif.coffee | 6 ++-- src/api/pool.js | 6 ++-- src/api/sr.js | 28 +++++++++---------- src/api/task.coffee | 4 +-- src/api/vbd.coffee | 8 +++--- src/api/vdi.coffee | 8 +++--- src/api/vif.coffee | 6 ++-- src/api/vm.coffee | 62 +++++++++++++++++++++--------------------- 13 files changed, 84 insertions(+), 84 deletions(-) diff --git a/src/api/disk.js b/src/api/disk.js index fcce29387..c64897e77 100644 --- a/src/api/disk.js +++ b/src/api/disk.js @@ -28,5 +28,5 @@ create.params = { } create.resolve = { - sr: ['sr', 'SR'] + sr: ['sr', 'SR', 'administrate'] } diff --git a/src/api/docker.js b/src/api/docker.js index 72e8aa381..80d87aac2 100644 --- a/src/api/docker.js +++ b/src/api/docker.js @@ -10,7 +10,7 @@ register.params = { } register.resolve = { - vm: ['vm', 'VM'] + vm: ['vm', 'VM', 'administrate'] } // ----------------------------------------------------------------------------- @@ -27,7 +27,7 @@ deregister.params = { } deregister.resolve = { - vm: ['vm', 'VM'] + vm: ['vm', 'VM', 'administrate'] } // ----------------------------------------------------------------------------- @@ -61,6 +61,6 @@ for (let fn of [start, stop, restart, pause, unpause]) { } fn.resolve = { - vm: ['vm', 'VM'] + vm: ['vm', 'VM', 'operate'] } } diff --git a/src/api/host.coffee b/src/api/host.coffee index 785b9d603..76c9d3c86 100644 --- a/src/api/host.coffee +++ b/src/api/host.coffee @@ -38,7 +38,7 @@ set.params = optional: true set.resolve = { - host: ['id', 'host'], + host: ['id', 'host', 'administrate'], } exports.set = set @@ -58,7 +58,7 @@ restart.params = { } restart.resolve = { - host: ['id', 'host'], + host: ['id', 'host', 'operate'], } exports.restart = restart @@ -77,7 +77,7 @@ restartAgent.params = { } restartAgent.resolve = { - host: ['id', 'host'], + host: ['id', 'host', 'operate'], } # TODO camel case @@ -97,7 +97,7 @@ start.params = { } start.resolve = { - host: ['id', 'host'], + host: ['id', 'host', 'operate'], } exports.start = start @@ -117,7 +117,7 @@ stop.params = { } stop.resolve = { - host: ['id', 'host'], + host: ['id', 'host', 'operate'], } exports.stop = stop @@ -136,7 +136,7 @@ detach.params = { } detach.resolve = { - host: ['id', 'host'], + host: ['id', 'host', 'administrate'], } exports.detach = detach @@ -155,7 +155,7 @@ enable.params = { } enable.resolve = { - host: ['id', 'host'], + host: ['id', 'host', 'administrate'], } exports.enable = enable @@ -174,7 +174,7 @@ disable.params = { } disable.resolve = { - host: ['id', 'host'], + host: ['id', 'host', 'administrate'], } exports.disable = disable @@ -210,7 +210,7 @@ createNetwork.params = { } createNetwork.resolve = { - host: ['host', 'host'], + host: ['host', 'host', 'administrate'], } createNetwork.permission = 'admin' exports.createNetwork = createNetwork @@ -228,7 +228,7 @@ listMissingPatches.params = { } listMissingPatches.resolve = { - host: ['host', 'host'], + host: ['host', 'host', 'view'], } exports.listMissingPatches = listMissingPatches @@ -244,7 +244,7 @@ installPatch.params = { } installPatch.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } exports.installPatch = installPatch @@ -337,7 +337,7 @@ stats.params = { } stats.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'view'] } exports.stats = stats; diff --git a/src/api/message.coffee b/src/api/message.coffee index a43d78434..af9f6dfe1 100644 --- a/src/api/message.coffee +++ b/src/api/message.coffee @@ -14,7 +14,7 @@ delete_.params = { } delete_.resolve = { - message: ['id', 'message'] + message: ['id', 'message', 'administrate'] } exports.delete = delete_ diff --git a/src/api/pbd.coffee b/src/api/pbd.coffee index e547dead6..df267da4e 100644 --- a/src/api/pbd.coffee +++ b/src/api/pbd.coffee @@ -16,7 +16,7 @@ exports.delete.params = { id: { type: 'string' } } exports.delete.resolve = { - PBD: ['id', 'PBD'] + PBD: ['id', 'PBD', 'administrate'] } #===================================================================== @@ -33,7 +33,7 @@ exports.disconnect.params = { id: { type: 'string' } } exports.disconnect.resolve = { - PBD: ['id', 'PBD'] + PBD: ['id', 'PBD', 'administrate'] } #===================================================================== @@ -50,5 +50,5 @@ exports.connect.params = { id: { type: 'string' } } exports.connect.resolve = { - PBD: ['id', 'PBD'] + PBD: ['id', 'PBD', 'administrate'] } diff --git a/src/api/pif.coffee b/src/api/pif.coffee index 15e133919..409d88a4f 100644 --- a/src/api/pif.coffee +++ b/src/api/pif.coffee @@ -14,7 +14,7 @@ exports.delete.params = { id: { type: 'string' } } exports.delete.resolve = { - PIF: ['id', 'PIF'] + PIF: ['id', 'PIF', 'administrate'] } #===================================================================== @@ -31,7 +31,7 @@ exports.disconnect.params = { id: { type: 'string' } } exports.disconnect.resolve = { - PIF: ['id', 'PIF'] + PIF: ['id', 'PIF', 'administrate'] } #===================================================================== # Connect @@ -47,5 +47,5 @@ exports.connect.params = { id: { type: 'string' } } exports.connect.resolve = { - PIF: ['id', 'PIF'] + PIF: ['id', 'PIF', 'administrate'] } diff --git a/src/api/pool.js b/src/api/pool.js index 6f8cd6856..aa126c208 100644 --- a/src/api/pool.js +++ b/src/api/pool.js @@ -22,7 +22,7 @@ set.params = { } set.resolve = { - pool: ['id', 'pool'] + pool: ['id', 'pool', 'administrate'] } // ------------------------------------------------------------------- @@ -41,7 +41,7 @@ installPatch.params = { } installPatch.resolve = { - pool: ['pool', 'pool'] + pool: ['pool', 'pool', 'administrate'] } // ------------------------------------------------------------------- @@ -68,7 +68,7 @@ uploadPatch.params = { } uploadPatch.resolve = { - pool: ['pool', 'pool'] + pool: ['pool', 'pool', 'administrate'] } // Compatibility diff --git a/src/api/sr.js b/src/api/sr.js index 5f2f6fa49..9a122f7ff 100644 --- a/src/api/sr.js +++ b/src/api/sr.js @@ -38,7 +38,7 @@ scan.params = { } scan.resolve = { - SR: ['id', 'SR'] + SR: ['id', 'SR', 'operate'] } // ------------------------------------------------------------------- @@ -57,7 +57,7 @@ destroy.params = { } destroy.resolve = { - SR: ['id', 'SR'] + SR: ['id', 'SR', 'administrate'] } // ------------------------------------------------------------------- @@ -75,7 +75,7 @@ forget.params = { } forget.resolve = { - SR: ['id', 'SR'] + SR: ['id', 'SR', 'administrate'] } // ------------------------------------------------------------------- @@ -120,7 +120,7 @@ createIso.params = { } createIso.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -175,7 +175,7 @@ createNfs.params = { } createNfs.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -220,7 +220,7 @@ createLvm.params = { } createLvm.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -274,7 +274,7 @@ probeNfs.params = { } probeNfs.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -343,7 +343,7 @@ createIscsi.params = { } createIscsi.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -419,7 +419,7 @@ probeIscsiIqns.params = { chapPassword: { type: 'string', optional: true } } probeIscsiIqns.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -496,7 +496,7 @@ probeIscsiLuns.params = { } probeIscsiLuns.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -553,7 +553,7 @@ probeIscsiExists.params = { } probeIscsiExists.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -591,7 +591,7 @@ probeNfsExists.params = { } probeNfsExists.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -634,7 +634,7 @@ reattach.params = { } reattach.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } // ------------------------------------------------------------------- @@ -677,5 +677,5 @@ reattachIso.params = { } reattachIso.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } diff --git a/src/api/task.coffee b/src/api/task.coffee index 751509e24..9ba366014 100644 --- a/src/api/task.coffee +++ b/src/api/task.coffee @@ -14,7 +14,7 @@ cancel.params = { } cancel.resolve = { - task: ['id', 'task'], + task: ['id', 'task', 'administrate'], } exports.cancel = cancel @@ -32,7 +32,7 @@ destroy.params = { } destroy.resolve = { - task: ['id', 'task'], + task: ['id', 'task', 'administrate'], } exports.destroy = destroy diff --git a/src/api/vbd.coffee b/src/api/vbd.coffee index 01ba22307..65189b7e7 100644 --- a/src/api/vbd.coffee +++ b/src/api/vbd.coffee @@ -17,7 +17,7 @@ delete_.params = { } delete_.resolve = { - vbd: ['id', 'VBD'], + vbd: ['id', 'VBD', 'administrate'], } exports.delete = delete_ @@ -37,7 +37,7 @@ disconnect.params = { } disconnect.resolve = { - vbd: ['id', 'VBD'], + vbd: ['id', 'VBD', 'administrate'], } exports.disconnect = disconnect @@ -57,7 +57,7 @@ connect.params = { } connect.resolve = { - vbd: ['id', 'VBD'], + vbd: ['id', 'VBD', 'administrate'], } exports.connect = connect @@ -83,7 +83,7 @@ set.params = { } set.resolve = { - vbd: ['id', 'VBD'], + vbd: ['id', 'VBD', 'administrate'], } exports.set = set diff --git a/src/api/vdi.coffee b/src/api/vdi.coffee index 29c5d51c9..14f2384aa 100644 --- a/src/api/vdi.coffee +++ b/src/api/vdi.coffee @@ -21,7 +21,7 @@ delete_.params = { } delete_.resolve = { - vdi: ['id', 'VDI'], + vdi: ['id', 'VDI', 'administrate'], } exports.delete = delete_ @@ -72,7 +72,7 @@ set.params = { } set.resolve = { - vdi: ['id', 'VDI'], + vdi: ['id', 'VDI', 'administrate'], } exports.set = set @@ -93,8 +93,8 @@ migrate.params = { } migrate.resolve = { - vdi: ['id', 'VDI'], - sr: ['sr_id', 'SR'], + vdi: ['id', 'VDI', 'administrate'], + sr: ['sr_id', 'SR', 'administrate'], } exports.migrate = migrate diff --git a/src/api/vif.coffee b/src/api/vif.coffee index b476e4b6f..ea49b3ef3 100644 --- a/src/api/vif.coffee +++ b/src/api/vif.coffee @@ -15,7 +15,7 @@ delete_.params = { } delete_.resolve = { - vif: ['id', 'VIF'] + vif: ['id', 'VIF', 'administrate'] } exports.delete = delete_ @@ -35,7 +35,7 @@ disconnect.params = { } disconnect.resolve = { - vif: ['id', 'VIF'] + vif: ['id', 'VIF', 'operate'] } exports.disconnect = disconnect @@ -55,7 +55,7 @@ connect.params = { } connect.resolve = { - vif: ['id', 'VIF'] + vif: ['id', 'VIF', 'operate'] } exports.connect = connect diff --git a/src/api/vm.coffee b/src/api/vm.coffee index a7dbfd779..f75847723 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -234,7 +234,7 @@ create.params = { } create.resolve = { - template: ['template', 'VM-template'], + template: ['template', 'VM-template', 'administrate'], } exports.create = create @@ -254,7 +254,7 @@ delete_.params = { } delete_.permission = 'admin' delete_.resolve = { - vm: ['id', ['VM', 'VM-snapshot']] + vm: ['id', ['VM', 'VM-snapshot'], 'administrate'] } exports.delete = delete_ @@ -283,7 +283,7 @@ ejectCd.params = { } ejectCd.resolve = { - vm: ['id', 'VM'] + vm: ['id', 'VM', 'operate'] } ejectCd.permission = 'admin' exports.ejectCd = ejectCd @@ -334,8 +334,8 @@ insertCd.params = { } insertCd.resolve = { - vm: ['id', 'VM'], - vdi: ['cd_id', 'VDI'], + vm: ['id', 'VM', 'operate'], + vdi: ['cd_id', 'VDI', 'operate'], } insertCd.permission = 'admin' exports.insertCd = insertCd @@ -362,7 +362,7 @@ migrate.params = { migrate.resolve = { vm: ['id', 'VM'] - host: ['host_id', 'host'] + host: ['host_id', 'host', 'administrate'] } exports.migrate = migrate @@ -450,11 +450,11 @@ migratePool.params = { } migratePool.resolve = { - vm: ['id', 'VM'], - host: ['target_host_id', 'host'], - sr: ['target_sr_id', 'SR'], - network: ['target_network_id', 'network'], - migrationNetwork: ['migration_network_id', 'network'], + vm: ['id', 'VM', 'administrate'], + host: ['target_host_id', 'host', 'administrate'], + sr: ['target_sr_id', 'SR', 'administrate'], + network: ['target_network_id', 'network', 'administrate'], + migrationNetwork: ['migration_network_id', 'network', 'administrate'], } # TODO: camel case. @@ -563,7 +563,7 @@ set.params = { } set.permission = 'admin' set.resolve = { - VM: ['id', ['VM', 'VM-snapshot']] + VM: ['id', ['VM', 'VM-snapshot'], 'administrate'] } exports.set = set @@ -586,7 +586,7 @@ restart.params = { } restart.resolve = { - vm: ['id', 'VM'] + vm: ['id', 'VM', 'operate'] } exports.restart = restart @@ -613,7 +613,7 @@ clone.params = { clone.resolve = { # TODO: is it necessary for snapshots? - vm: ['id', 'VM'] + vm: ['id', 'VM', 'administrate'] } exports.clone = clone @@ -631,7 +631,7 @@ convert.params = { } convert.resolve = { - vm: ['id', ['VM', 'VM-snapshot']] + vm: ['id', ['VM', 'VM-snapshot'], 'administrate'] } convert.permission = 'admin' exports.convert = convert @@ -648,7 +648,7 @@ snapshot.params = { } snapshot.resolve = { - vm: ['id', 'VM'] + vm: ['id', 'VM', 'administrate'] } snapshot.permission = 'admin' exports.snapshot = snapshot @@ -669,7 +669,7 @@ start.params = { } start.resolve = { - vm: ['id', 'VM'] + vm: ['id', 'VM', 'operate'] } exports.start = start @@ -706,7 +706,7 @@ stop.params = { } stop.resolve = { - vm: ['id', 'VM'] + vm: ['id', 'VM', 'operate'] } exports.stop = stop @@ -723,7 +723,7 @@ suspend.params = { } suspend.resolve = { - vm: ['id', 'VM'] + vm: ['id', 'VM', 'operate'] } suspend.permission = 'admin' exports.suspend = suspend @@ -745,7 +745,7 @@ resume.params = { } resume.resolve = { - vm: ['id', 'VM'] + vm: ['id', 'VM', 'operate'] } resume.permission = 'admin' exports.resume = resume @@ -764,7 +764,7 @@ revert.params = { } revert.resolve = { - snapshot: ['id', 'VM-snapshot'] + snapshot: ['id', 'VM-snapshot', 'administrate'] } revert.permission = 'admin' exports.revert = revert @@ -797,7 +797,7 @@ export_.params = { } export_.resolve = { - vm: ['vm', ['VM', 'VM-snapshot']], + vm: ['vm', ['VM', 'VM-snapshot'], 'administrate'], } export_.permission = 'admin' exports.export = export_; @@ -830,7 +830,7 @@ import_.params = { } import_.resolve = { - host: ['host', 'host'] + host: ['host', 'host', 'administrate'] } import_.permission = 'admin' exports.import = import_ @@ -873,8 +873,8 @@ attachDisk.params = { } attachDisk.resolve = { - vm: ['vm', 'VM'], - vdi: ['vdi', 'VDI'], + vm: ['vm', 'VM', 'administrate'], + vdi: ['vdi', 'VDI', 'administrate'], } attachDisk.permission = 'admin' exports.attachDisk = attachDisk @@ -901,8 +901,8 @@ createInterface.params = { } createInterface.resolve = { - vm: ['vm', 'VM'], - network: ['network', 'network'], + vm: ['vm', 'VM', 'administrate'], + network: ['network', 'network', 'administrate'], } createInterface.permission = 'admin' exports.createInterface = createInterface @@ -923,7 +923,7 @@ attachPci.params = { } attachPci.resolve = { - vm: ['vm', 'VM'], + vm: ['vm', 'VM', 'administrate'], } attachPci.permission = 'admin' exports.attachPci = attachPci @@ -943,7 +943,7 @@ detachPci.params = { } detachPci.resolve = { - vm: ['vm', 'VM'], + vm: ['vm', 'VM', 'administrate'], } detachPci.permission = 'admin' exports.detachPci = detachPci @@ -1047,7 +1047,7 @@ stats.params = { } stats.resolve = { - vm: ['id', ['VM', 'VM-snapshot']], + vm: ['id', ['VM', 'VM-snapshot'], 'view'], } exports.stats = stats; @@ -1070,7 +1070,7 @@ bootOrder.params = { } bootOrder.resolve = { - vm: ['vm', 'VM'], + vm: ['vm', 'VM', 'operate'], } bootOrder.permission = 'admin' exports.bootOrder = bootOrder From 3befdbc93d017182549cef579d6e5ab1917d39de Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 29 May 2015 10:21:49 +0200 Subject: [PATCH 136/140] Fix group.setUsers(). --- src/xo.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/xo.js b/src/xo.js index 744cadd6d..09f98bb63 100644 --- a/src/xo.js +++ b/src/xo.js @@ -373,8 +373,7 @@ export default class Xo extends EventEmitter { user.groups = filter(user.groups, id => id !== groupId) }) - // Better than using userIds because we avoid duplicates - group.users = keys(newUsersIds) + group.users = userIds await Promise.all([ Promise.all(map(newUsers, this._users.save, this._users)), From 26e8ae4bf317357c592afb29370d795bf03f9c9a Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 29 May 2015 11:55:59 +0200 Subject: [PATCH 137/140] position is now optional for vm.attachDisk(). --- src/api/vm.coffee | 24 ++++-------------------- src/xapi.js | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 20 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index f75847723..2b1bce107 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -842,32 +842,16 @@ exports.import = import_ # FIXME: if position is used, all other disks after this position # should be shifted. attachDisk = $coroutine ({vm, vdi, position, mode, bootable}) -> - xapi = @getXAPI vm - - VBD_ref = $wait xapi.call 'VBD.create', { - VM: vm.ref - VDI: vdi.ref - mode: mode - type: 'Disk' - userdevice: position - bootable: bootable ? false - empty: false - other_config: {} - qos_algorithm_type: '' - qos_algorithm_params: {} - } - - $wait xapi.call 'VBD.plug', VBD_ref - - return true + $wait @getXAPI(vm).attachVdiToVm(vdi.id, vm.id, {bootable, mode, position}) + return attachDisk.params = { bootable: { type: 'boolean' optional: true } - mode: { type: 'string' } - position: { type: 'string' } + mode: { type: 'string', optional: true } + position: { type: 'string', optional: true } vdi: { type: 'string' } vm: { type: 'string' } } diff --git a/src/xapi.js b/src/xapi.js index fce0f88c6..2e4459a6c 100644 --- a/src/xapi.js +++ b/src/xapi.js @@ -496,6 +496,41 @@ export default class Xapi extends XapiBase { ) } + async attachVdiToVm (vdiId, vmId, { + bootable = false, + mode = 'RW', + position + } = {}) { + const vdi = this.getObject(vdiId) + const vm = this.getObject(vmId) + + if (position == null) { + forEach(vm.$VBDs, vbd => { + const curPos = +vbd.userdevice + if (!(position > curPos)) { + position = curPos + } + }) + + position = position == null ? 0 : position + 1 + } + + const vbdRef = await this.call('VBD.create', { + bootable, + empty: false, + mode, + other_config: {}, + qos_algorithm_params: {}, + qos_algorithm_type: '', + type: 'Disk', + userdevice: String(position), + VDI: vdi.$ref, + VM: vm.$ref + }) + + await this.call('VBD.plug', vbdRef) + } + // ================================================================= async createVirtualInterface (vmId, networkId, { From 01ecd7697653c356035a2779ce7d9982b7b9acc5 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 29 May 2015 15:23:36 +0200 Subject: [PATCH 138/140] vm.ejectCd() succeed even if the VBD cannot be destroyed. --- src/api/vm.coffee | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index 2b1bce107..b7276db5b 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -274,7 +274,9 @@ ejectCd = $coroutine ({vm}) -> if cdDriveRef $wait xapi.call 'VBD.eject', cdDriveRef - $wait xapi.call 'VBD.destroy', cdDriveRef + + # Silently attempts to destroy the VBD. + xapi.call('VBD.destroy', cdDriveRef).catch(->) return true From d01d544a0ac3f1ab4dbf2380dca065692d290e75 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 29 May 2015 15:23:53 +0200 Subject: [PATCH 139/140] Remove a fixed FIXME. --- src/api/vm.coffee | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/api/vm.coffee b/src/api/vm.coffee index b7276db5b..55dfea401 100644 --- a/src/api/vm.coffee +++ b/src/api/vm.coffee @@ -839,8 +839,6 @@ exports.import = import_ #--------------------------------------------------------------------- -# FIXME: position should be optional and default to last. -# # FIXME: if position is used, all other disks after this position # should be shifted. attachDisk = $coroutine ({vm, vdi, position, mode, bootable}) -> From bbd79379ce6714669af2baeb9ff6a79b71d9de11 Mon Sep 17 00:00:00 2001 From: Julien Fontanet Date: Fri, 29 May 2015 16:11:43 +0200 Subject: [PATCH 140/140] Remove unused import. --- src/xo.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/xo.js b/src/xo.js index 09f98bb63..17954a4aa 100644 --- a/src/xo.js +++ b/src/xo.js @@ -4,7 +4,6 @@ import forEach from 'lodash.foreach' import includes from 'lodash.includes' import isEmpty from 'lodash.isempty' import isString from 'lodash.isstring' -import keys from 'lodash.keys' import map from 'lodash.map' import proxyRequest from 'proxy-http-request' import XoCollection from 'xo-collection'