From 6ec1047b904088be1b0851431cfd9081b1f99db9 Mon Sep 17 00:00:00 2001 From: Viet Date: Fri, 26 Apr 2024 11:05:29 +0000 Subject: [PATCH] From refs/heads/master 40792193 --- .buildinfo | 2 +- FAQ.html | 10 +- README.md | 2 +- _modules/index.html | 8 +- _static/basic.css | 6 +- _static/doctools.js | 2 +- _static/documentation_options.js | 3 +- _static/language_data.js | 4 +- _static/searchtools.js | 191 ++++++++++++++++++++----------- _static/sphinx_highlight.js | 16 ++- cheat.html | 26 ++--- development.html | 10 +- fedcloudclient.html | 136 +++++++++++----------- genindex.html | 8 +- index.html | 12 +- install.html | 16 +-- intro.html | 10 +- modules.html | 10 +- py-modindex.html | 8 +- quickstart.html | 14 +-- scripts.html | 14 +-- search.html | 8 +- searchindex.js | 2 +- usage.html | 32 +++--- 24 files changed, 308 insertions(+), 242 deletions(-) diff --git a/.buildinfo b/.buildinfo index b9931d1..756e339 100644 --- a/.buildinfo +++ b/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 30e316d6fd5738c44c8ccb7d9d95c828 +config: ca600d1e51ffdcc4615b772e11e83dab tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/FAQ.html b/FAQ.html index 1a7037d..a91ffbc 100644 --- a/FAQ.html +++ b/FAQ.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -83,7 +83,7 @@
-

FAQ and Troubleshooting

+

FAQ and Troubleshooting

  1. FedCloud client gives error message "SSL exception connecting to https:// ..." when connecting to some sites

diff --git a/README.md b/README.md index 72c63d9..1c03f35 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ GitHub Pages of [tdviet/fedcloudclient](https://github.com/tdviet/fedcloudclient.git) === -Sphinx html documentation of [b826d242](https://github.com/tdviet/fedcloudclient/tree/b826d2424ab548bbdcb1a726a78676f163d5bbab) +Sphinx html documentation of [40792193](https://github.com/tdviet/fedcloudclient/tree/4079219365e2fd6b356331867ec5e697b3aef1f0) diff --git a/_modules/index.html b/_modules/index.html index 0fdda5a..b355d18 100644 --- a/_modules/index.html +++ b/_modules/index.html @@ -1,5 +1,5 @@ - + @@ -14,9 +14,9 @@ - - - + + + diff --git a/_static/basic.css b/_static/basic.css index cfc60b8..f316efc 100644 --- a/_static/basic.css +++ b/_static/basic.css @@ -4,7 +4,7 @@ * * Sphinx stylesheet -- basic theme. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -237,6 +237,10 @@ a.headerlink { visibility: hidden; } +a:visited { + color: #551A8B; +} + h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, diff --git a/_static/doctools.js b/_static/doctools.js index d06a71d..4d67807 100644 --- a/_static/doctools.js +++ b/_static/doctools.js @@ -4,7 +4,7 @@ * * Base JavaScript utilities for all Sphinx HTML documentation. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ diff --git a/_static/documentation_options.js b/_static/documentation_options.js index b57ae3b..7e4c114 100644 --- a/_static/documentation_options.js +++ b/_static/documentation_options.js @@ -1,5 +1,4 @@ -var DOCUMENTATION_OPTIONS = { - URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), +const DOCUMENTATION_OPTIONS = { VERSION: '', LANGUAGE: 'en', COLLAPSE_INDEX: false, diff --git a/_static/language_data.js b/_static/language_data.js index 250f566..367b8ed 100644 --- a/_static/language_data.js +++ b/_static/language_data.js @@ -5,7 +5,7 @@ * This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -13,7 +13,7 @@ var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; -/* Non-minified version is copied as a separate JS file, is available */ +/* Non-minified version is copied as a separate JS file, if available */ /** * Porter Stemmer diff --git a/_static/searchtools.js b/_static/searchtools.js index 97d56a7..92da3f8 100644 --- a/_static/searchtools.js +++ b/_static/searchtools.js @@ -4,7 +4,7 @@ * * Sphinx JavaScript utilities for the full-text search. * - * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. + * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ @@ -57,12 +57,12 @@ const _removeChildren = (element) => { const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string -const _displayItem = (item, searchTerms) => { +const _displayItem = (item, searchTerms, highlightTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; - const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; const [docName, title, anchor, descr, score, _filename] = item; @@ -75,28 +75,35 @@ const _displayItem = (item, searchTerms) => { if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; - requestUrl = docUrlRoot + dirname; + requestUrl = contentRoot + dirname; linkUrl = requestUrl; } else { // normal html builders - requestUrl = docUrlRoot + docName + docFileSuffix; + requestUrl = contentRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } let linkEl = listItem.appendChild(document.createElement("a")); linkEl.href = linkUrl + anchor; linkEl.dataset.score = score; linkEl.innerHTML = title; - if (descr) + if (descr) { listItem.appendChild(document.createElement("span")).innerHTML = " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) .then((data) => { if (data) listItem.appendChild( - Search.makeSearchSummary(data, searchTerms) + Search.makeSearchSummary(data, searchTerms, anchor) ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); }); Search.output.appendChild(listItem); }; @@ -109,26 +116,43 @@ const _finishSearch = (resultCount) => { ); else Search.status.innerText = _( - `Search finished, found ${resultCount} page(s) matching the search query.` - ); + "Search finished, found ${resultCount} page(s) matching the search query." + ).replace('${resultCount}', resultCount); }; const _displayNextItem = ( results, resultCount, - searchTerms + searchTerms, + highlightTerms, ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { - _displayItem(results.pop(), searchTerms); + _displayItem(results.pop(), searchTerms, highlightTerms); setTimeout( - () => _displayNextItem(results, resultCount, searchTerms), + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), 5 ); } // search finished, update title and status message else _finishSearch(resultCount); }; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a @@ -152,13 +176,26 @@ const Search = { _queued_query: null, _pulse_status: -1, - htmlToText: (htmlString) => { + htmlToText: (htmlString, anchor) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); - htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); + for (const removalQuery of [".headerlinks", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content const docContent = htmlElement.querySelector('[role="main"]'); - if (docContent !== undefined) return docContent.textContent; + if (docContent) return docContent.textContent; + console.warn( - "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." ); return ""; }, @@ -231,16 +268,7 @@ const Search = { else Search.deferQuery(query); }, - /** - * execute search (requires search index to be loaded) - */ - query: (query) => { - const filenames = Search._index.filenames; - const docNames = Search._index.docnames; - const titles = Search._index.titles; - const allTitles = Search._index.alltitles; - const indexEntries = Search._index.indexentries; - + _parseQuery: (query) => { // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set(); @@ -276,16 +304,32 @@ const Search = { // console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); - // array of [docname, title, anchor, descr, score, filename] - let results = []; + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename]. + const normalResults = []; + const nonMainIndexResults = []; + _removeChildren(document.getElementById("search-progress")); - const queryLower = query.toLowerCase(); + const queryLower = query.toLowerCase().trim(); for (const [title, foundTitles] of Object.entries(allTitles)) { - if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { let score = Math.round(100 * queryLower.length / title.length) - results.push([ + normalResults.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", @@ -300,46 +344,47 @@ const Search = { // search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { - for (const [file, id] of foundEntries) { - let score = Math.round(100 * queryLower.length / entry.length) - results.push([ + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], - ]); + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } } } } // lookup as object objectTerms.forEach((term) => - results.push(...Search.performObjectSearch(term, objectTerms)) + normalResults.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext - results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function - if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); - - // now sort the results by score (in opposite order of appearance, since the - // display function below uses pop() to retrieve items) and then - // alphabetically - results.sort((a, b) => { - const leftScore = a[4]; - const rightScore = b[4]; - if (leftScore === rightScore) { - // same score: sort alphabetically - const leftTitle = a[1].toLowerCase(); - const rightTitle = b[1].toLowerCase(); - if (leftTitle === rightTitle) return 0; - return leftTitle > rightTitle ? -1 : 1; // inverted is intentional - } - return leftScore > rightScore ? 1 : -1; - }); + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept @@ -353,14 +398,19 @@ const Search = { return acc; }, []); - results = results.reverse(); + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); // for debugging //Search.lastresults = results.slice(); // a copy // console.info("search results:", Search.lastresults); // print the results - _displayNextItem(results, results.length, searchTerms); + _displayNextItem(results, results.length, searchTerms, highlightTerms); }, /** @@ -458,14 +508,18 @@ const Search = { // add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); - Object.keys(terms).forEach((term) => { - if (term.match(escapedWord) && !terms[word]) - arr.push({ files: terms[term], score: Scorer.partialTerm }); - }); - Object.keys(titleTerms).forEach((term) => { - if (term.match(escapedWord) && !titleTerms[word]) - arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); - }); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } } // no match but word was a required one @@ -488,9 +542,8 @@ const Search = { // create the mapping files.forEach((file) => { - if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) - fileMap.get(file).push(word); - else fileMap.set(file, [word]); + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); }); }); @@ -541,8 +594,8 @@ const Search = { * search summary for a given text. keywords is a list * of stemmed words. */ - makeSearchSummary: (htmlText, keywords) => { - const text = Search.htmlToText(htmlText); + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); if (text === "") return null; const textLower = text.toLowerCase(); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js index aae669d..8a96c69 100644 --- a/_static/sphinx_highlight.js +++ b/_static/sphinx_highlight.js @@ -29,14 +29,19 @@ const _highlight = (node, addItems, text, className) => { } span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); parent.insertBefore( span, parent.insertBefore( - document.createTextNode(val.substr(pos + text.length)), + rest, node.nextSibling ) ); node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); if (isInSVG) { const rect = document.createElementNS( @@ -140,5 +145,10 @@ const SphinxHighlight = { }, }; -_ready(SphinxHighlight.highlightSearchWords); -_ready(SphinxHighlight.initEscapeListener); +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/cheat.html b/cheat.html index 64a0d9e..8943364 100644 --- a/cheat.html +++ b/cheat.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -92,11 +92,11 @@
-

Cheat sheet

+

Cheat sheet

See Tutorial for more details of commands.

-

Local install via pip3

+

Local install via pip3

  • Create a Python virtual environment:

@@ -124,7 +124,7 @@

Local install via pip3

-

Using Docker container

+

Using Docker container

  • Pull the latest version of fedcloudclient container

@@ -145,7 +145,7 @@

Using Docker container

-

Using oidc-agent

+

Using oidc-agent

  • Create an oidc-agent account (if not done):

@@ -160,7 +160,7 @@

Using oidc-agent -

Basic usages

+

Basic usages

  • List your VO memberships according to the access token:

@@ -199,7 +199,7 @@

Basic usages -

Searching and selecting resources

+

Searching and selecting resources

  • Show all available projects:

@@ -237,7 +237,7 @@

Searching and selecting resources -

Mapping and filtering results from OpenStack commands

+

Mapping and filtering results from OpenStack commands

  • Select flavors with 2 CPUs:

@@ -271,7 +271,7 @@

Mapping and filtering results from OpenStack commands

-

Useful commands

+

Useful commands

  • Check expiration time of access token (not work for oidc-agent-account):

@@ -324,7 +324,7 @@

Useful commands -

More information

+

More information

  • Get help:

diff --git a/development.html b/development.html index bc5c7da..d6bb4de 100644 --- a/development.html +++ b/development.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -83,7 +83,7 @@
-

Using FedCloud client in Python

+

Using FedCloud client in Python

FedCloud client can be used as a library for developing other services and tools for EGI Federated Cloud. Most of functionalities of FedCloud client can be called directly from other codes without side effects. An example of the code using FedCloud client is available at GitHub. diff --git a/fedcloudclient.html b/fedcloudclient.html index 7a12e55..e4e234a 100644 --- a/fedcloudclient.html +++ b/fedcloudclient.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -136,19 +136,19 @@

-

FedCloud client API references

+

FedCloud client API references

-

fedcloudclient.checkin module

+

fedcloudclient.checkin module

Implementation of "fedcloud token" commands for interactions with EGI Check-in and access tokens

-fedcloudclient.checkin.check_token(oidc_token, verbose=False)[source]
+fedcloudclient.checkin.check_token(oidc_token, verbose=False)[source]

Check validity of access token

Parameters:
    -
  • verbose --

  • +
  • verbose

  • oidc_token -- the token to check

@@ -160,7 +160,7 @@

FedCloud client API references
-fedcloudclient.checkin.decode_token(oidc_access_token)[source]
+fedcloudclient.checkin.decode_token(oidc_access_token)[source]

Decoding access token to a dict :param oidc_access_token: :return: dict with token info

@@ -168,7 +168,7 @@

FedCloud client API references
-fedcloudclient.checkin.get_access_token(oidc_access_token, oidc_agent_account, mytoken, mytoken_server)[source]
+fedcloudclient.checkin.get_access_token(oidc_access_token, oidc_agent_account, mytoken, mytoken_server)[source]

Get access token Generates new access token from oidc-agent or mytoken

@@ -177,10 +177,10 @@

FedCloud client API references
Parameters:
    -
  • oidc_access_token --

  • -
  • oidc_agent_account --

  • -
  • mytoken --

  • -
  • mytoken_server --

  • +
  • oidc_access_token

  • +
  • oidc_agent_account

  • +
  • mytoken

  • +
  • mytoken_server

Returns:
@@ -191,7 +191,7 @@

FedCloud client API references
-fedcloudclient.checkin.get_checkin_id(oidc_token)[source]
+fedcloudclient.checkin.get_checkin_id(oidc_token)[source]

Get EGI Check-in ID from access token

Parameters:
@@ -205,7 +205,7 @@

FedCloud client API references
-fedcloudclient.checkin.get_token_from_mytoken_server(mytoken, mytoken_server, quiet=False)[source]
+fedcloudclient.checkin.get_token_from_mytoken_server(mytoken, mytoken_server, quiet=False)[source]

Get access token from mytoken server :param quiet: :param mytoken: @@ -215,7 +215,7 @@

FedCloud client API references
-fedcloudclient.checkin.get_token_from_oidc_agent(oidc_agent_account, quiet=False)[source]
+fedcloudclient.checkin.get_token_from_oidc_agent(oidc_agent_account, quiet=False)[source]

Get access token from oidc-agent :param quiet: :param oidc_agent_account: account name in oidc-agent @@ -224,7 +224,7 @@

FedCloud client API references
-fedcloudclient.checkin.oidc_discover(oidc_url)[source]
+fedcloudclient.checkin.oidc_discover(oidc_url)[source]

Discover OIDC endpoints

Parameters:
@@ -238,17 +238,17 @@

FedCloud client API references
-fedcloudclient.checkin.print_error(message, quiet)[source]
+fedcloudclient.checkin.print_error(message, quiet)[source]

Print error message to stderr if not quiet

-fedcloudclient.checkin.token_list_vos(oidc_access_token)[source]
+fedcloudclient.checkin.token_list_vos(oidc_access_token)[source]

List VO memberships in EGI Check-in

Parameters:
-

oidc_access_token --

+

oidc_access_token

Returns:

list of VO names

@@ -258,7 +258,7 @@

FedCloud client API references -

fedcloudclient.endpoint module

+

fedcloudclient.endpoint module

"fedcloud endpoint" commands are complementary part of the "fedcloud site" commands.

Instead of using site configurations defined in files saved in GitHub repository or local disk, the commands try to get site information directly from GOCDB @@ -266,21 +266,21 @@

FedCloud client API references
-exception fedcloudclient.endpoint.TokenException[source]
+exception fedcloudclient.endpoint.TokenException[source]

Bases: Exception

Exception for Token related errors

-fedcloudclient.endpoint.find_endpoint(service_type, production=True, monitored=True, site=None)[source]
+fedcloudclient.endpoint.find_endpoint(service_type, production=True, monitored=True, site=None)[source]

Searching GOCDB for endpoints according to service types and status

Parameters:
    -
  • service_type --

  • -
  • production --

  • -
  • monitored --

  • +
  • service_type

  • +
  • production

  • +
  • monitored

  • site -- list of sites, None for searching all sites

@@ -292,61 +292,61 @@

FedCloud client API references
-fedcloudclient.endpoint.format_project_as_dict(site_name, project)[source]
+fedcloudclient.endpoint.format_project_as_dict(site_name, project)[source]

Format project data as a dictionary

-fedcloudclient.endpoint.format_project_as_list(site_name, project)[source]
+fedcloudclient.endpoint.format_project_as_list(site_name, project)[source]

Format project data as a list

-fedcloudclient.endpoint.get_keystone_url(os_auth_url, path)[source]
+fedcloudclient.endpoint.get_keystone_url(os_auth_url, path)[source]

Helper function for fixing Keystone URL

-fedcloudclient.endpoint.get_projects_from_single_site(os_auth_url, unscoped_token)[source]
+fedcloudclient.endpoint.get_projects_from_single_site(os_auth_url, unscoped_token)[source]

Get list of projects from unscoped token

-fedcloudclient.endpoint.get_projects_from_sites(access_token, site)[source]
+fedcloudclient.endpoint.get_projects_from_sites(access_token, site)[source]

Get all projects from site(s) using access token, in the default output format (list)

-fedcloudclient.endpoint.get_projects_from_sites_as_dict(access_token, site)[source]
+fedcloudclient.endpoint.get_projects_from_sites_as_dict(access_token, site)[source]

Get all projects from site(s) using access token, as a dictionary

-fedcloudclient.endpoint.get_projects_from_sites_as_list(access_token, site)[source]
+fedcloudclient.endpoint.get_projects_from_sites_as_list(access_token, site)[source]

Get all projects from site(s) using access token, as a list

-fedcloudclient.endpoint.get_projects_from_sites_with_format(access_token, site, output_format_function)[source]
+fedcloudclient.endpoint.get_projects_from_sites_with_format(access_token, site, output_format_function)[source]

Get all projects from site(s) using access token

-fedcloudclient.endpoint.get_scoped_token(os_auth_url, access_token, project_id)[source]
+fedcloudclient.endpoint.get_scoped_token(os_auth_url, access_token, project_id)[source]

Get a scoped token, will try all protocols if needed

-fedcloudclient.endpoint.get_sites()[source]
+fedcloudclient.endpoint.get_sites()[source]

Get list of sites (using GOCDB instead of site configuration)

Returns:
@@ -357,19 +357,19 @@

FedCloud client API references
-fedcloudclient.endpoint.get_unscoped_token(os_auth_url, access_token)[source]
+fedcloudclient.endpoint.get_unscoped_token(os_auth_url, access_token)[source]

Get an unscoped token, will try all protocols if needed

-fedcloudclient.endpoint.retrieve_unscoped_token(os_auth_url, access_token, protocol='openid')[source]
+fedcloudclient.endpoint.retrieve_unscoped_token(os_auth_url, access_token, protocol='openid')[source]

Request an unscoped token

-

fedcloudclient.sites module

+

fedcloudclient.sites module

"fedcloud site" commands will read site configurations and manipulate with them. If the local site configurations exist at ~/.config/fedcloud/site-config/, fedcloud will read them from there, otherwise the commands will read from GitHub repository.

@@ -380,7 +380,7 @@

FedCloud client API references
-fedcloudclient.sites.delete_site_config(config_dir)[source]
+fedcloudclient.sites.delete_site_config(config_dir)[source]

Delete site configs to local directory specified in config_dir

Parameters:
@@ -394,7 +394,7 @@

FedCloud client API references
-fedcloudclient.sites.find_endpoint_and_project_id(site_name, vo)[source]
+fedcloudclient.sites.find_endpoint_and_project_id(site_name, vo)[source]

Return Keystone endpoint and project ID from site name and VO according to site configuration

@@ -413,7 +413,7 @@

FedCloud client API references
-fedcloudclient.sites.find_site_data(site_name)[source]
+fedcloudclient.sites.find_site_data(site_name)[source]

Return configuration of the correspondent site with site_name

Parameters:
@@ -427,7 +427,7 @@

FedCloud client API references
-fedcloudclient.sites.find_vo_from_project_id(site_name, project_id)[source]
+fedcloudclient.sites.find_vo_from_project_id(site_name, project_id)[source]

Return the VO name form the project ID and site_name according to site configuration

@@ -445,7 +445,7 @@

FedCloud client API references
-fedcloudclient.sites.list_sites()[source]
+fedcloudclient.sites.list_sites()[source]

List of all sites IDs in site configurations

Returns:
@@ -456,7 +456,7 @@

FedCloud client API references
-fedcloudclient.sites.read_default_site_config()[source]
+fedcloudclient.sites.read_default_site_config()[source]

Read default site configurations from GitHub Storing site configurations in a global variable that will be used by other functions

@@ -468,7 +468,7 @@

FedCloud client API references
-fedcloudclient.sites.read_local_site_config(config_dir)[source]
+fedcloudclient.sites.read_local_site_config(config_dir)[source]

Read site configurations from local directory specified in config_dir Storing site configurations in global variable, that will be used by other functions

@@ -483,7 +483,7 @@

FedCloud client API references
-fedcloudclient.sites.read_site_config()[source]
+fedcloudclient.sites.read_site_config()[source]

Read site configurations from local config dir if exist, otherwise from default GitHub location. Storing site configurations in global variable, that will be used by other functions. Call read_local_site_config() @@ -497,7 +497,7 @@

FedCloud client API references
-fedcloudclient.sites.read_site_schema()[source]
+fedcloudclient.sites.read_site_schema()[source]

Read schema.json for validating site configuration

Returns:
@@ -508,14 +508,14 @@

FedCloud client API references
-fedcloudclient.sites.safe_read_yaml_from_url(url, max_length)[source]
+fedcloudclient.sites.safe_read_yaml_from_url(url, max_length)[source]

Safe reading from URL Check URL and size before reading

Parameters:
    -
  • url --

  • -
  • max_length --

  • +
  • url

  • +
  • max_length

Returns:
@@ -526,7 +526,7 @@

FedCloud client API references
-fedcloudclient.sites.save_site_config(config_dir)[source]
+fedcloudclient.sites.save_site_config(config_dir)[source]

Save site configs to local directory specified in config_dir Overwrite local configs if exist

@@ -541,12 +541,12 @@

FedCloud client API references -

fedcloudclient.openstack module

+

fedcloudclient.openstack module

Implementation of "fedcloud openstack" or "fedcloud openstack-int" for performing OpenStack commands on sites

-fedcloudclient.openstack.check_openstack_client_installation()[source]
+fedcloudclient.openstack.check_openstack_client_installation()[source]

Check if openstack command-line client is installed and available via $PATH

Returns:
@@ -557,7 +557,7 @@

FedCloud client API references
-fedcloudclient.openstack.fedcloud_openstack(oidc_access_token, site, vo, openstack_command, json_output=True)[source]
+fedcloudclient.openstack.fedcloud_openstack(oidc_access_token, site, vo, openstack_command, json_output=True)[source]

Simplified version of fedcloud_openstack_full() using default EGI setting for identity provider and protocols Calls OpenStack CLI with default options for EGI Check-in

@@ -581,7 +581,7 @@

FedCloud client API references
-fedcloudclient.openstack.fedcloud_openstack_full(oidc_access_token, openstack_auth_protocol, openstack_auth_type, checkin_identity_provider, site, vo, openstack_command, json_output=True)[source]
+fedcloudclient.openstack.fedcloud_openstack_full(oidc_access_token, openstack_auth_protocol, openstack_auth_type, checkin_identity_provider, site, vo, openstack_command, json_output=True)[source]

Calling openstack client with full options specified, including support for other identity providers and protocols

@@ -610,20 +610,20 @@

FedCloud client API references
-fedcloudclient.openstack.print_result(site, vo, command, exc_msg, error_code, result, json_output, ignore_missing_vo, first)[source]
+fedcloudclient.openstack.print_result(site, vo, command, exc_msg, error_code, result, json_output, ignore_missing_vo, first)[source]

Print output from an OpenStack command

Parameters:
    -
  • site --

  • -
  • vo --

  • -
  • command --

  • -
  • exc_msg --

  • -
  • error_code --

  • -
  • result --

  • -
  • json_output --

  • -
  • ignore_missing_vo --

  • -
  • first --

  • +
  • site

  • +
  • vo

  • +
  • command

  • +
  • exc_msg

  • +
  • error_code

  • +
  • result

  • +
  • json_output

  • +
  • ignore_missing_vo

  • +
  • first

Returns:
@@ -634,7 +634,7 @@

FedCloud client API references -

fedcloudclient.cli module

+

fedcloudclient.cli module

Main CLI module

diff --git a/genindex.html b/genindex.html index aeb995d..89a8cca 100644 --- a/genindex.html +++ b/genindex.html @@ -1,5 +1,5 @@ - + @@ -14,9 +14,9 @@ - - - + + + diff --git a/index.html b/index.html index 6ea188c..5668265 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -87,7 +87,7 @@ window.location.replace('https://fedcloudclient.fedcloud.eu'); }
-

Welcome to FedCloud client's documentation!

+

Welcome to FedCloud client's documentation!

https://zenodo.org/badge/336671726.svg

Contents:

@@ -148,7 +148,7 @@

Welcome to FedCloud client's documentation! -

Indices and tables

+

Indices and tables

  • Index

  • Module Index

  • diff --git a/install.html b/install.html index dad5dbb..b7aa72c 100644 --- a/install.html +++ b/install.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -88,9 +88,9 @@
    -

    Installation

    +

    Installation

    -

    Installing FedCloud client with pip

    +

    Installing FedCloud client with pip

    Simply use the following pip3 command (should be done without root privileges).

    $ pip3 install -U fedcloudclient
     
    @@ -106,7 +106,7 @@

    Installing FedCloud client with pip -

    Installing EGI Core Trust Anchor certificates

    +

    Installing EGI Core Trust Anchor certificates

    Some sites use certificates issued by national certificate authorities that are not included in the default OS distribution. If you receive error message "SSL exception connecting to https:// ...", follow instructions @@ -119,7 +119,7 @@

    Installing EGI Core Trust Anchor certificates -

    Using FedCloud client via Docker container

    +

    Using FedCloud client via Docker container

    You can use Docker container for testing FedCloud client without installation. EGI Core Trust Anchor certificates and site configurations are preinstalled.

    $ sudo docker pull tdviet/fedcloudclient
    diff --git a/intro.html b/intro.html
    index 806cd10..b0aab6a 100644
    --- a/intro.html
    +++ b/intro.html
    @@ -1,5 +1,5 @@
     
    -
    +
     
       
     
    @@ -15,9 +15,9 @@
       
             
             
    -        
    -        
    -        
    +        
    +        
    +        
         
         
         
    @@ -83,7 +83,7 @@
                
    -

    Introduction

    +

    Introduction

    https://zenodo.org/badge/336671726.svg

    The FedCloud client is a high-level Python package for a command-line client designed for interaction with the OpenStack services in the EGI infrastructure. The client can access various EGI diff --git a/modules.html b/modules.html index 547ce48..799603e 100644 --- a/modules.html +++ b/modules.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -81,7 +81,7 @@

    -

    fedcloudclient API references

    +

    fedcloudclient API references

    • FedCloud client API references
        diff --git a/py-modindex.html b/py-modindex.html index bbf911b..c0f4681 100644 --- a/py-modindex.html +++ b/py-modindex.html @@ -1,5 +1,5 @@ - + @@ -14,9 +14,9 @@ - - - + + + diff --git a/quickstart.html b/quickstart.html index d0bfa35..3709620 100644 --- a/quickstart.html +++ b/quickstart.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -87,12 +87,12 @@
        -

        Quick start

        +

        Quick start

        The Tutorial presentation is designed for new users of FedCloud client. It starts with the quick setup and basic usages, then step by step to more advanced scenarios.

        -

        Setup

        +

        Setup

        • Install FedCloud client via pip:

        @@ -114,7 +114,7 @@

        Setup

    -

    Basic usages

    +

    Basic usages

    • List your VO memberships according to the access token:

    diff --git a/scripts.html b/scripts.html index 40d0f48..3135ac3 100644 --- a/scripts.html +++ b/scripts.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -87,11 +87,11 @@
    -

    Using FedCloud client in scripts

    +

    Using FedCloud client in scripts

    FedCloud client can be used in scripts for simple automation, either for setting environment variables for other tools or processing outputs from OpenStack commands.

    -

    Setting environment variables for external tools

    +

    Setting environment variables for external tools

    Outputs from FedCloud client commands for setting environment variables are already in the forms "export VAR=VALUE". Simple eval command in scripts can be used for setting environment variables for external tools:

    $ fedcloud site show-project-id --site IISAS-FedCloud --vo eosc-synergy.eu
    @@ -108,7 +108,7 @@ 

    Setting environment variables for external tools -

    Processing JSON outputs from OpenStack commands via jq

    +

    Processing JSON outputs from OpenStack commands via jq

    The outputs from Openstack command can be printed in JSON formats with --json-output parameter for further machine processing. The JSON outputs can be processed in scripts by jq command. For examples, if users want to select flavors with 2 CPUs:

    diff --git a/search.html b/search.html index 0bd10e0..83734c6 100644 --- a/search.html +++ b/search.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + diff --git a/searchindex.js b/searchindex.js index 28e55f1..b380fe7 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["FAQ", "cheat", "development", "fedcloudclient", "index", "install", "intro", "modules", "quickstart", "scripts", "usage"], "filenames": ["FAQ.rst", "cheat.rst", "development.rst", "fedcloudclient.rst", "index.rst", "install.rst", "intro.rst", "modules.rst", "quickstart.rst", "scripts.rst", "usage.rst"], "titles": ["FAQ and Troubleshooting", "Cheat sheet", "Using FedCloud client in Python", "FedCloud client API references", "Welcome to FedCloud client's documentation!", "Installation", "Introduction", "fedcloudclient API references", "Quick start", "Using FedCloud client in scripts", "Usage"], "terms": {"fedcloud": [0, 1, 6, 7, 8], "client": [0, 6, 7, 8, 10], "give": [0, 3, 10], "error": [0, 1, 2, 3, 5, 8, 9], "messag": [0, 2, 3, 5, 8, 10], "ssl": [0, 5], "except": [0, 3, 5, 8, 9], "connect": [0, 5, 10], "http": [0, 1, 3, 5, 6, 9, 10], "when": [0, 5, 10], "some": [0, 5], "site": [0, 1, 2, 4, 5, 6, 7, 8, 9], "us": [0, 3, 4, 6, 8, 10], "certif": [0, 1, 4], "issu": [0, 1, 5], "nation": [0, 5], "author": [0, 5, 10], "ar": [0, 3, 5, 6, 9, 10], "includ": [0, 3, 5, 6, 10], "default": [0, 3, 5, 10], "o": [0, 3, 5], "distribut": [0, 5], "If": [0, 2, 3, 5, 10], "you": [0, 1, 5, 8], "receiv": [0, 5], "follow": [0, 5, 6, 9, 10], "instruct": [0, 5, 8, 10], "instal": [0, 3, 4, 6, 8], "egi": [0, 1, 2, 3, 4, 6, 8, 9, 10], "core": [0, 4], "trust": [0, 4], "anchor": [0, 4], "add": [0, 2, 3, 5, 10], "them": [0, 3, 5, 9, 10], "bundl": [0, 1, 5], "python": [0, 1, 4, 5, 6], "request": [0, 1, 3, 5], "For": [0, 5, 6, 9, 10], "quick": [0, 1, 4, 5], "test": [0, 3, 5, 10], "virtual": [0, 1, 5, 6, 10], "environ": [0, 1, 4, 5, 8], "just": [0, 1, 2, 5], "execut": [0, 1, 2, 5, 6, 8, 10], "command": [0, 2, 3, 4, 5, 6, 8], "see": [0, 1, 2, 5], "thi": [0, 5, 6, 8, 9, 10], "readm": [0, 5], "md": [0, 5], "more": [0, 2, 4, 5, 8, 9], "detail": [0, 1, 2, 5, 10], "wget": [0, 1, 5], "raw": [0, 1, 5], "githubusercont": [0, 1, 5], "com": [0, 1, 5], "tdviet": [0, 1, 5, 8], "cert": [0, 1, 5], "main": [0, 1, 3, 5, 10], "script": [0, 1, 4, 5, 6, 10], "install_cert": [0, 1, 5], "sh": [0, 1, 5, 10], "bash": [0, 1, 5, 8, 10], "frozen": 0, "dure": 0, "initi": 0, "mainli": [0, 6], "machin": [0, 1, 6, 8, 9], "It": [0, 5, 8], "i": [0, 1, 2, 3, 5, 6, 8, 9, 10], "known": 0, "problem": 0, "libsodium": 0, "which": [0, 10], "oidc": [0, 3, 4, 8, 10], "agent": [0, 3, 4, 8, 10], "librari": [0, 2, 6], "The": [0, 3, 6, 8, 9, 10], "describ": [0, 10], "here": [0, 10], "check": [0, 1, 2, 3, 5, 6, 8, 9, 10], "entropi": 0, "vm": [0, 1, 6, 8, 10], "cat": [0, 1], "proc": 0, "sy": 0, "kernel": 0, "random": 0, "entropy_avail": 0, "result": [0, 2, 3, 4, 8, 9], "lower": 0, "than": 0, "300": 0, "haveg": 0, "rng": 0, "tool": [0, 2, 4], "On": [0, 10], "cento": [0, 8, 10], "also": [0, 5, 10], "have": [0, 3, 6, 8, 9, 10], "start": [0, 1, 4], "daemon": 0, "manual": 0, "after": [0, 10], "reboot": 0, "tutori": [1, 6, 8], "creat": [1, 5, 10], "python3": 1, "m": 1, "venv": 1, "env": [1, 10], "activ": [1, 8, 10], "sourc": [1, 2, 3, 10], "bin": [1, 5], "fedcloudcli": [1, 2, 4, 5, 6, 8], "pip": [1, 4, 8], "igtf": 1, "pull": [1, 5], "latest": [1, 5], "version": [1, 3, 5], "sudo": [1, 5], "account": [1, 3, 10], "run": [1, 5, 6, 8], "v": 1, "config": [1, 3, 10], "root": [1, 5], "name": [1, 3, 8, 9, 10], "restart": 1, "previous": 1, "termin": 1, "an": [1, 2, 3, 6, 8, 10], "done": [1, 5, 10], "gen": 1, "pub": 1, "issuer": 1, "aai": 1, "eu": [1, 2, 3, 6, 8, 9, 10], "auth": [1, 3, 10], "realm": 1, "scope": [1, 3, 6, 10], "eduperson_entitl": 1, "email": 1, "load": [1, 3, 10], "set": [1, 2, 3, 4, 8, 10], "eval": [1, 9, 10], "keychain": 1, "export": [1, 8, 9, 10], "oidc_agent_account": [1, 3, 10], "list": [1, 2, 3, 6, 8, 9, 10], "your": [1, 2, 5, 8], "vo": [1, 2, 3, 6, 8, 9, 10], "membership": [1, 3, 8, 10], "accord": [1, 3, 5, 8, 10], "access": [1, 2, 3, 6, 8, 9, 10], "token": [1, 2, 3, 4, 6, 8], "feder": [1, 2, 6, 8, 10], "cloud": [1, 2, 6, 8, 9, 10], "imag": [1, 2, 3, 6, 8, 10], "iisa": [1, 6, 8, 9, 10], "eosc": [1, 8, 9, 10], "synergi": [1, 8, 9, 10], "all": [1, 3, 6, 8, 9, 10], "server": [1, 3, 8, 10], "all_sit": [1, 6, 8, 9, 10], "print": [1, 2, 3, 8, 9, 10], "onli": [1, 3, 6, 9, 10], "valu": [1, 2, 9, 10], "os_token": [1, 10], "cesga": [1, 8, 10], "c": 1, "id": [1, 3, 8, 9, 10], "f": 1, "full": [1, 3, 6, 10], "json": [1, 2, 3, 4, 8, 10], "output": [1, 2, 3, 4, 8, 10], "show": [1, 8, 9, 10], "avail": [1, 2, 3, 6, 10], "project": [1, 3, 9, 10], "endpoint": [1, 4, 6, 7, 8], "horizon": 1, "dashboard": 1, "servic": [1, 2, 3, 6, 10], "type": [1, 3, 9, 10], "org": [1, 10], "applianc": 1, "titl": 1, "appdb": 1, "properti": [1, 9], "dc": 1, "ubuntu": [1, 10], "18": [1, 10], "04": [1, 10], "virtualbox": [1, 8, 10], "cesnet": 1, "mcc": 1, "flavor": [1, 9, 10], "2": [1, 9, 10], "cpu": [1, 9, 10], "ram": [1, 9, 10], "2048": [1, 10], "vcpu": [1, 9, 10], "spec": [1, 10], "format": [1, 3, 8, 9, 10], "20": [1, 10], "simpler": 1, "longer": 1, "wai": 1, "ifca": [1, 10], "lcg2": [1, 10], "train": [1, 8, 10], "shorter": 1, "complex": [1, 9], "regex": 1, "jq": [1, 4], "r": [1, 9], "gpu": [1, 9, 10], "long": [1, 2, 3, 9, 10], "acc": 1, "comp": 1, "acceler": [1, 9], "code": [1, 2, 3, 8, 9], "0": [1, 2, 8, 9, 10], "length": [1, 9], "construct": 1, "object": [1, 2, 3], "remov": [1, 3, 10], "other": [1, 2, 3, 8, 9, 10], "expir": [1, 3, 10], "time": [1, 3, 10], "work": [1, 2, 10], "variabl": [1, 3, 4, 8], "my": 1, "own": 1, "shell": [1, 4], "complet": [1, 4], "dirti": 1, "mai": [1, 6, 10], "unrespons": 1, "_fedcloud_complet": [1, 10], "bash_sourc": [1, 10], "systemat": 1, "master": 1, "exampl": [1, 2, 6, 9, 10], "fedcloud_bash_complet": [1, 10], "pass": [1, 3, 10], "mytoken": [1, 3, 10], "file": [1, 3, 5, 10], "user": [1, 3, 5, 6, 8, 9, 10], "txt": 1, "fedcloud_mytoken": [1, 10], "data": [1, 3, 10], "kit": [1, 10], "edu": [1, 10], "egi_sit": 1, "egi_vo": [1, 10], "kei": 1, "keypair": 1, "testvm": 1, "onc": [1, 10], "log": 1, "can": [1, 2, 5, 6, 9, 10], "retriev": 1, "curl": 1, "169": 1, "254": 1, "user_data": 1, "copi": [1, 2, 10], "previou": 1, "get": [1, 3, 6, 8, 10], "help": [1, 4, 8], "develop": 2, "most": [2, 6, 10], "function": [2, 3, 6], "call": [2, 3, 10], "directli": [2, 3, 10], "from": [2, 3, 4, 6, 8, 10], "without": [2, 5, 9, 10], "side": 2, "effect": 2, "github": [2, 3, 10], "download": 2, "demo": [2, 10], "py": 2, "how": 2, "import": 2, "openstack": [2, 4, 5, 6, 7, 8], "fedcloud_openstack": [2, 3, 7], "input": [2, 10], "paramet": [2, 3, 6, 9, 10], "your_access_token": 2, "cyfronet": 2, "option": [2, 3, 5, 8, 10], "must": 2, "tupl": [2, 3], "singl": [2, 6], "line": [2, 3, 6, 10], "finish": 2, "correctli": 2, "error_cod": [2, 3], "store": [2, 3, 10], "easi": 2, "process": [2, 4, 8], "ok": 2, "dump": 2, "indent": 2, "4": 2, "els": 2, "string": [2, 3], "contain": [2, 3, 4, 8], "": [2, 3], "read": [2, 3, 8, 10], "api": [2, 4, 6, 10], "refer": [2, 4, 10], "about": 2, "each": 2, "equival": [2, 10], "its": [2, 5], "implement": 3, "interact": [3, 6, 8, 10], "check_token": [3, 7], "oidc_token": 3, "verbos": 3, "fals": 3, "valid": [3, 10], "return": 3, "none": 3, "decode_token": [3, 7], "oidc_access_token": [3, 8, 10], "decod": 3, "dict": 3, "param": 3, "info": 3, "get_access_token": [3, 7], "mytoken_serv": 3, "gener": [3, 9, 10], "new": [3, 8, 10], "rais": 3, "exist": [3, 10], "get_checkin_id": [3, 7], "get_token_from_mytoken_serv": [3, 7], "quiet": 3, "get_token_from_oidc_ag": [3, 7], "oidc_discov": [3, 7], "oidc_url": 3, "discov": 3, "url": [3, 10], "configur": [3, 5, 6, 8, 10], "print_error": [3, 7], "stderr": 3, "token_list_vo": [3, 7], "complementari": [3, 10], "part": [3, 10], "instead": [3, 10], "defin": [3, 10], "save": [3, 10], "repositori": [3, 10], "local": [3, 4, 5, 10], "disk": [3, 9, 10], "try": [3, 10], "inform": [3, 4, 8, 10], "gocdb": [3, 6, 8, 10], "grid": [3, 10], "oper": [3, 6, 10], "manag": [3, 6, 10], "databas": [3, 10], "goc": [3, 10], "make": [3, 5, 10], "probe": [3, 10], "tokenexcept": [3, 7], "base": 3, "relat": [3, 6], "find_endpoint": [3, 7], "service_typ": 3, "product": 3, "true": [3, 9, 10], "monitor": 3, "search": [3, 4, 6], "statu": [3, 8, 10], "format_project_as_dict": [3, 7], "site_nam": 3, "dictionari": 3, "format_project_as_list": [3, 7], "get_keystone_url": [3, 7], "os_auth_url": [3, 9, 10], "path": [3, 5], "helper": [3, 10], "fix": 3, "keyston": [3, 6, 10], "get_projects_from_single_sit": [3, 7], "unscoped_token": 3, "unscop": [3, 6], "get_projects_from_sit": [3, 7], "access_token": [3, 8, 10], "get_projects_from_sites_as_dict": [3, 7], "get_projects_from_sites_as_list": [3, 7], "get_projects_from_sites_with_format": [3, 7], "output_format_funct": 3, "get_scoped_token": [3, 7], "project_id": [3, 10], "protocol": [3, 10], "need": [3, 10], "get_sit": [3, 7], "get_unscoped_token": [3, 7], "retrieve_unscoped_token": [3, 7], "openid": [3, 10], "manipul": [3, 8, 10], "otherwis": [3, 10], "By": [3, 10], "doe": [3, 10], "anyth": [3, 10], "explicitli": [3, 10], "via": [3, 4, 6, 8, 10], "advantag": [3, 10], "besid": [3, 10], "faster": [3, 10], "abil": [3, 10], "custom": [3, 10], "e": [3, 8, 9, 10], "g": [3, 8, 9, 10], "addit": [3, 10], "thei": [3, 10], "do": [3, 10], "so": [3, 10], "delete_site_config": [3, 7], "config_dir": 3, "delet": 3, "directori": [3, 5, 10], "specifi": [3, 6], "find_endpoint_and_project_id": [3, 7], "find": 3, "ha": [3, 10], "find_site_data": [3, 7], "correspond": [3, 5, 10], "found": 3, "find_vo_from_project_id": [3, 7], "form": [3, 9], "support": 3, "list_sit": [3, 7], "read_default_site_config": [3, 7], "global": 3, "read_local_site_config": [3, 7], "read_site_config": [3, 7], "dir": [3, 10], "locat": 3, "read_site_schema": [3, 7], "schema": 3, "safe_read_yaml_from_url": [3, 7], "max_length": 3, "safe": 3, "size": 3, "befor": [3, 10], "save_site_config": [3, 7], "overwrit": [3, 10], "int": [3, 8, 10], "perform": [3, 6, 10], "check_openstack_client_instal": [3, 7], "openstack_command": [3, 10], "json_output": 3, "simplifi": 3, "fedcloud_openstack_ful": [3, 7], "ident": 3, "provid": [3, 10], "openstack_auth_protocol": [3, 10], "openstack_auth_typ": [3, 10], "checkin_identity_provid": 3, "authent": [3, 4], "v3oidcaccesstoken": [3, 10], "map": [3, 4, 9], "print_result": [3, 7], "exc_msg": 3, "ignore_missing_vo": 3, "first": [3, 10], "introduct": 4, "setup": 4, "basic": 4, "usag": [4, 6], "docker": [4, 8, 10], "ec3": [4, 6], "select": [4, 9], "secret": [4, 6], "extern": 4, "checkin": [4, 6, 7, 10], "modul": [4, 6, 7], "cli": [4, 7], "faq": 4, "troubleshoot": 4, "cheat": 4, "sheet": 4, "pip3": [4, 5, 8], "resourc": [4, 10], "filter": [4, 9], "index": 4, "page": 4, "simpli": 5, "should": 5, "privileg": 5, "u": 5, "That": 5, "packag": [5, 6], "togeth": 5, "requir": [5, 10], "like": [5, 6, 10], "openstackcli": 5, "virtual_env": 5, "usr": 5, "sure": 5, "correct": 5, "preinstal": 5, "high": 6, "level": 6, "design": [6, 8], "infrastructur": [6, 10], "variou": 6, "mani": [6, 10], "task": 6, "notabl": 6, "featur": 6, "rich": 6, "wide": 6, "rang": 6, "simpl": [6, 9], "ani": 6, "three": 6, "member": 6, "action": 6, "programm": 6, "autom": [6, 9], "program": 6, "six": [6, 10], "deploi": [6, 10], "elast": [6, 10], "comput": [6, 10], "cluster": [6, 10], "A": 6, "short": [6, 10], "present": [6, 8], "document": [6, 10], "descript": 6, "step": 8, "advanc": 8, "scenario": 8, "portal": [8, 10], "100it": [8, 10], "bifi": [8, 10], "combin": [8, 10], "862d4ede": [8, 10], "6a11": [8, 10], "4227": [8, 10], "8388": [8, 10], "c94141a5dac": [8, 10], "7": [8, 10], "further": [8, 9], "null": [8, 9], "arg": [8, 10], "exit": [8, 10], "group": [8, 10], "next": 8, "section": 8, "either": 9, "alreadi": 9, "var": 9, "ui": [9, 10], "savba": [9, 10], "sk": [9, 10], "5000": [9, 10], "v3": [9, 10], "os_project_id": [9, 10], "51f736d36ce34b9ebdf196cfcabd24e": [9, 10], "echo": 9, "want": 9, "m1": [9, 10], "nano": 9, "64": 9, "1": [9, 10], "ephemer": [9, 10], "public": [9, 10], "2e562a51": 9, "8861": 9, "40d5": 9, "8fc9": 9, "2638bab4662c": 9, "xlarg": [9, 10], "16384": 9, "40": [9, 10], "8": 9, "medium": [9, 10], "out": 9, "empti": 9, "note": 9, "unsupport": 9, "choos": 10, "whether": 10, "obtain": 10, "regist": 10, "hand": 10, "visit": 10, "websit": 10, "rememb": 10, "allow": 10, "explain": 10, "tabl": 10, "below": 10, "chang": 10, "howev": 10, "fixedli": 10, "infn": 10, "bari": 10, "fedcloud_mytoken_serv": 10, "openstack_auth_provid": 10, "conveni": 10, "alwai": 10, "frequent": 10, "lot": 10, "abov": 10, "affect": 10, "respons": 10, "recommend": 10, "bashrc": 10, "click": 10, "explan": 10, "enabl": 10, "press": 10, "tab": 10, "twice": 10, "hep": 10, "know": 10, "refresh": 10, "As": 10, "mention": 10, "given": 10, "shown": 10, "bellow": 10, "even": 10, "2021": 10, "01": 10, "02": 10, "25": 10, "39": 10, "utc": 10, "3571": 10, "second": 10, "nova": 10, "in2p3": 10, "ir": 10, "sbgcloud": 10, "fr": 10, "owner": 10, "2a7e2cd4b6dc4e609dd934964c1715c6": 10, "3b9754ad8c6046b4aec43ec21abe7d8c": 10, "argument": 10, "organis": 10, "233f045cb1ff46842a15ebb33af69460": 10, "d340308880134d04294097524eace710": 10, "7101022b9ae74ed9ac1a574497279499": 10, "egi_access": 10, "5bbdb5c1e0b2bcbac29904f4ac22dcaa": 10, "vo_access_egi_eu": 10, "univ": 10, "lill": 10, "4cab325ca8c2495bf2d4e8f230bcd51a": 10, "padova": 10, "stack": 10, "gaaaaa": 10, "os_auth_typ": 10, "os_identity_provid": 10, "os_protocol": 10, "os_access_token": 10, "necessari": 10, "templat": 10, "init": 10, "dat": 10, "radl": 10, "home": 10, "viet": 10, "edit": 10, "inaccess": 10, "a22bbffb007745b2934bf308b0a4d186": 10, "covid19": 10, "differ": 10, "between": 10, "notif": 10, "specif": 10, "repeat": 10, "join": 10, "10": 10, "altern": 10, "sort": 10, "less": 10, "order": 10, "place": 10, "best": 10, "match": 10, "suitabl": 10, "yaml": 10, "2096": 10, "larg": 10, "huge": 10, "g1": 10, "c08r30": 10, "k20m": 10, "c16r60": 10, "2xk20m": 10, "newest": 10, "catania": 10, "network": 10, "privat": 10, "both": 10, "share": 10, "mode": 10, "multipl": 10, "success": 10, "begin": 10, "cach": 10, "again": 10, "5bd8397c": 10, "b97f": 10, "462d": 10, "9d2b": 10, "5b533844996c": 10, "small": 10, "df25f80f": 10, "ed19": 10, "4e0b": 10, "805e": 10, "d34620ba0334": 10, "4096": 10}, "objects": {"fedcloudclient": [[3, 0, 0, "-", "checkin"], [3, 0, 0, "-", "cli"], [3, 0, 0, "-", "endpoint"], [3, 0, 0, "-", "openstack"], [3, 0, 0, "-", "sites"]], "fedcloudclient.checkin": [[3, 1, 1, "", "check_token"], [3, 1, 1, "", "decode_token"], [3, 1, 1, "", "get_access_token"], [3, 1, 1, "", "get_checkin_id"], [3, 1, 1, "", "get_token_from_mytoken_server"], [3, 1, 1, "", "get_token_from_oidc_agent"], [3, 1, 1, "", "oidc_discover"], [3, 1, 1, "", "print_error"], [3, 1, 1, "", "token_list_vos"]], "fedcloudclient.endpoint": [[3, 2, 1, "", "TokenException"], [3, 1, 1, "", "find_endpoint"], [3, 1, 1, "", "format_project_as_dict"], [3, 1, 1, "", "format_project_as_list"], [3, 1, 1, "", "get_keystone_url"], [3, 1, 1, "", "get_projects_from_single_site"], [3, 1, 1, "", "get_projects_from_sites"], [3, 1, 1, "", "get_projects_from_sites_as_dict"], [3, 1, 1, "", "get_projects_from_sites_as_list"], [3, 1, 1, "", "get_projects_from_sites_with_format"], [3, 1, 1, "", "get_scoped_token"], [3, 1, 1, "", "get_sites"], [3, 1, 1, "", "get_unscoped_token"], [3, 1, 1, "", "retrieve_unscoped_token"]], "fedcloudclient.openstack": [[3, 1, 1, "", "check_openstack_client_installation"], [3, 1, 1, "", "fedcloud_openstack"], [3, 1, 1, "", "fedcloud_openstack_full"], [3, 1, 1, "", "print_result"]], "fedcloudclient.sites": [[3, 1, 1, "", "delete_site_config"], [3, 1, 1, "", "find_endpoint_and_project_id"], [3, 1, 1, "", "find_site_data"], [3, 1, 1, "", "find_vo_from_project_id"], [3, 1, 1, "", "list_sites"], [3, 1, 1, "", "read_default_site_config"], [3, 1, 1, "", "read_local_site_config"], [3, 1, 1, "", "read_site_config"], [3, 1, 1, "", "read_site_schema"], [3, 1, 1, "", "safe_read_yaml_from_url"], [3, 1, 1, "", "save_site_config"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:exception"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "exception", "Python exception"]}, "titleterms": {"faq": 0, "troubleshoot": 0, "cheat": 1, "sheet": 1, "local": 1, "instal": [1, 5], "via": [1, 5, 9], "pip3": 1, "us": [1, 2, 5, 9], "docker": [1, 5], "contain": [1, 5], "oidc": 1, "agent": 1, "basic": [1, 8], "usag": [1, 8, 10], "search": 1, "select": [1, 10], "resourc": 1, "map": 1, "filter": 1, "result": 1, "from": [1, 9], "openstack": [1, 3, 9, 10], "command": [1, 9, 10], "more": 1, "inform": 1, "fedcloud": [2, 3, 4, 5, 9, 10], "client": [2, 3, 4, 5, 9], "python": 2, "api": [3, 7], "refer": [3, 7], "fedcloudcli": [3, 7], "checkin": 3, "modul": 3, "endpoint": [3, 10], "site": [3, 10], "cli": 3, "welcom": 4, "": 4, "document": 4, "content": 4, "indic": 4, "tabl": 4, "pip": 5, "egi": 5, "core": 5, "trust": 5, "anchor": 5, "certif": 5, "introduct": 6, "quick": 8, "start": 8, "setup": 8, "script": 9, "set": 9, "environ": [9, 10], "variabl": [9, 10], "extern": 9, "tool": 9, "process": 9, "json": 9, "output": 9, "jq": 9, "authent": 10, "shell": 10, "complet": 10, "help": 10, "token": 10, "ec3": 10, "secret": 10}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1, "sphinx": 58}, "alltitles": {"FAQ and Troubleshooting": [[0, "faq-and-troubleshooting"]], "Cheat sheet": [[1, "cheat-sheet"]], "Local install via pip3": [[1, "local-install-via-pip3"]], "Using Docker container": [[1, "using-docker-container"]], "Using oidc-agent": [[1, "using-oidc-agent"]], "Basic usages": [[1, "basic-usages"], [8, "basic-usages"]], "Searching and selecting resources": [[1, "searching-and-selecting-resources"]], "Mapping and filtering results from OpenStack commands": [[1, "mapping-and-filtering-results-from-openstack-commands"]], "Useful commands": [[1, "useful-commands"]], "More information": [[1, "more-information"]], "Using FedCloud client in Python": [[2, "using-fedcloud-client-in-python"]], "FedCloud client API references": [[3, "fedcloud-client-api-references"]], "fedcloudclient.checkin module": [[3, "module-fedcloudclient.checkin"]], "fedcloudclient.endpoint module": [[3, "module-fedcloudclient.endpoint"]], "fedcloudclient.sites module": [[3, "module-fedcloudclient.sites"]], "fedcloudclient.openstack module": [[3, "module-fedcloudclient.openstack"]], "fedcloudclient.cli module": [[3, "module-fedcloudclient.cli"]], "Welcome to FedCloud client's documentation!": [[4, "welcome-to-fedcloud-client-s-documentation"]], "Contents:": [[4, null]], "Indices and tables": [[4, "indices-and-tables"]], "Installation": [[5, "installation"]], "Installing FedCloud client with pip": [[5, "installing-fedcloud-client-with-pip"]], "Installing EGI Core Trust Anchor certificates": [[5, "installing-egi-core-trust-anchor-certificates"]], "Using FedCloud client via Docker container": [[5, "using-fedcloud-client-via-docker-container"]], "Introduction": [[6, "introduction"]], "fedcloudclient API references": [[7, "fedcloudclient-api-references"]], "Quick start": [[8, "quick-start"]], "Setup": [[8, "setup"]], "Using FedCloud client in scripts": [[9, "using-fedcloud-client-in-scripts"]], "Setting environment variables for external tools": [[9, "setting-environment-variables-for-external-tools"]], "Processing JSON outputs from OpenStack commands via jq": [[9, "processing-json-outputs-from-openstack-commands-via-jq"]], "Usage": [[10, "usage"]], "Authentication": [[10, "authentication"]], "Environment variables": [[10, "environment-variables"]], "Shell completion": [[10, "shell-completion"]], "fedcloud --help command": [[10, "fedcloud-help-command"]], "fedcloud token commands": [[10, "fedcloud-token-commands"]], "fedcloud endpoint commands": [[10, "fedcloud-endpoint-commands"]], "fedcloud ec3 commands": [[10, "fedcloud-ec3-commands"]], "fedcloud site commands": [[10, "fedcloud-site-commands"]], "fedcloud select commands": [[10, "fedcloud-select-commands"]], "fedcloud openstack commands": [[10, "fedcloud-openstack-commands"]], "fedcloud secret commands": [[10, "fedcloud-secret-commands"]]}, "indexentries": {"tokenexception": [[3, "fedcloudclient.endpoint.TokenException"]], "check_openstack_client_installation() (in module fedcloudclient.openstack)": [[3, "fedcloudclient.openstack.check_openstack_client_installation"]], "check_token() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.check_token"]], "decode_token() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.decode_token"]], "delete_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.delete_site_config"]], "fedcloud_openstack() (in module fedcloudclient.openstack)": [[3, "fedcloudclient.openstack.fedcloud_openstack"]], "fedcloud_openstack_full() (in module fedcloudclient.openstack)": [[3, "fedcloudclient.openstack.fedcloud_openstack_full"]], "fedcloudclient.checkin": [[3, "module-fedcloudclient.checkin"]], "fedcloudclient.cli": [[3, "module-fedcloudclient.cli"]], "fedcloudclient.endpoint": [[3, "module-fedcloudclient.endpoint"]], "fedcloudclient.openstack": [[3, "module-fedcloudclient.openstack"]], "fedcloudclient.sites": [[3, "module-fedcloudclient.sites"]], "find_endpoint() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.find_endpoint"]], "find_endpoint_and_project_id() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.find_endpoint_and_project_id"]], "find_site_data() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.find_site_data"]], "find_vo_from_project_id() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.find_vo_from_project_id"]], "format_project_as_dict() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.format_project_as_dict"]], "format_project_as_list() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.format_project_as_list"]], "get_access_token() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.get_access_token"]], "get_checkin_id() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.get_checkin_id"]], "get_keystone_url() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_keystone_url"]], "get_projects_from_single_site() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_single_site"]], "get_projects_from_sites() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_sites"]], "get_projects_from_sites_as_dict() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_sites_as_dict"]], "get_projects_from_sites_as_list() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_sites_as_list"]], "get_projects_from_sites_with_format() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_sites_with_format"]], "get_scoped_token() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_scoped_token"]], "get_sites() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_sites"]], "get_token_from_mytoken_server() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.get_token_from_mytoken_server"]], "get_token_from_oidc_agent() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.get_token_from_oidc_agent"]], "get_unscoped_token() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_unscoped_token"]], "list_sites() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.list_sites"]], "module": [[3, "module-fedcloudclient.checkin"], [3, "module-fedcloudclient.cli"], [3, "module-fedcloudclient.endpoint"], [3, "module-fedcloudclient.openstack"], [3, "module-fedcloudclient.sites"]], "oidc_discover() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.oidc_discover"]], "print_error() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.print_error"]], "print_result() (in module fedcloudclient.openstack)": [[3, "fedcloudclient.openstack.print_result"]], "read_default_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.read_default_site_config"]], "read_local_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.read_local_site_config"]], "read_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.read_site_config"]], "read_site_schema() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.read_site_schema"]], "retrieve_unscoped_token() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.retrieve_unscoped_token"]], "safe_read_yaml_from_url() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.safe_read_yaml_from_url"]], "save_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.save_site_config"]], "token_list_vos() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.token_list_vos"]]}}) \ No newline at end of file +Search.setIndex({"alltitles": {"Authentication": [[10, "authentication"]], "Basic usages": [[1, "basic-usages"], [8, "basic-usages"]], "Cheat sheet": [[1, "cheat-sheet"]], "Contents:": [[4, null]], "Environment variables": [[10, "environment-variables"]], "FAQ and Troubleshooting": [[0, "faq-and-troubleshooting"]], "FedCloud client API references": [[3, "fedcloud-client-api-references"]], "Indices and tables": [[4, "indices-and-tables"]], "Installation": [[5, "installation"]], "Installing EGI Core Trust Anchor certificates": [[5, "installing-egi-core-trust-anchor-certificates"]], "Installing FedCloud client with pip": [[5, "installing-fedcloud-client-with-pip"]], "Introduction": [[6, "introduction"]], "Local install via pip3": [[1, "local-install-via-pip3"]], "Mapping and filtering results from OpenStack commands": [[1, "mapping-and-filtering-results-from-openstack-commands"]], "More information": [[1, "more-information"]], "Processing JSON outputs from OpenStack commands via jq": [[9, "processing-json-outputs-from-openstack-commands-via-jq"]], "Quick start": [[8, "quick-start"]], "Searching and selecting resources": [[1, "searching-and-selecting-resources"]], "Setting environment variables for external tools": [[9, "setting-environment-variables-for-external-tools"]], "Setup": [[8, "setup"]], "Shell completion": [[10, "shell-completion"]], "Usage": [[10, "usage"]], "Useful commands": [[1, "useful-commands"]], "Using Docker container": [[1, "using-docker-container"]], "Using FedCloud client in Python": [[2, "using-fedcloud-client-in-python"]], "Using FedCloud client in scripts": [[9, "using-fedcloud-client-in-scripts"]], "Using FedCloud client via Docker container": [[5, "using-fedcloud-client-via-docker-container"]], "Using oidc-agent": [[1, "using-oidc-agent"]], "Welcome to FedCloud client's documentation!": [[4, "welcome-to-fedcloud-client-s-documentation"]], "fedcloud --help command": [[10, "fedcloud-help-command"]], "fedcloud ec3 commands": [[10, "fedcloud-ec3-commands"]], "fedcloud endpoint commands": [[10, "fedcloud-endpoint-commands"]], "fedcloud openstack commands": [[10, "fedcloud-openstack-commands"]], "fedcloud secret commands": [[10, "fedcloud-secret-commands"]], "fedcloud select commands": [[10, "fedcloud-select-commands"]], "fedcloud site commands": [[10, "fedcloud-site-commands"]], "fedcloud token commands": [[10, "fedcloud-token-commands"]], "fedcloudclient API references": [[7, "fedcloudclient-api-references"]], "fedcloudclient.checkin module": [[3, "module-fedcloudclient.checkin"]], "fedcloudclient.cli module": [[3, "module-fedcloudclient.cli"]], "fedcloudclient.endpoint module": [[3, "module-fedcloudclient.endpoint"]], "fedcloudclient.openstack module": [[3, "module-fedcloudclient.openstack"]], "fedcloudclient.sites module": [[3, "module-fedcloudclient.sites"]]}, "docnames": ["FAQ", "cheat", "development", "fedcloudclient", "index", "install", "intro", "modules", "quickstart", "scripts", "usage"], "envversion": {"sphinx": 61, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.todo": 2, "sphinx.ext.viewcode": 1}, "filenames": ["FAQ.rst", "cheat.rst", "development.rst", "fedcloudclient.rst", "index.rst", "install.rst", "intro.rst", "modules.rst", "quickstart.rst", "scripts.rst", "usage.rst"], "indexentries": {"check_openstack_client_installation() (in module fedcloudclient.openstack)": [[3, "fedcloudclient.openstack.check_openstack_client_installation", false]], "check_token() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.check_token", false]], "decode_token() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.decode_token", false]], "delete_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.delete_site_config", false]], "fedcloud_openstack() (in module fedcloudclient.openstack)": [[3, "fedcloudclient.openstack.fedcloud_openstack", false]], "fedcloud_openstack_full() (in module fedcloudclient.openstack)": [[3, "fedcloudclient.openstack.fedcloud_openstack_full", false]], "fedcloudclient.checkin": [[3, "module-fedcloudclient.checkin", false]], "fedcloudclient.cli": [[3, "module-fedcloudclient.cli", false]], "fedcloudclient.endpoint": [[3, "module-fedcloudclient.endpoint", false]], "fedcloudclient.openstack": [[3, "module-fedcloudclient.openstack", false]], "fedcloudclient.sites": [[3, "module-fedcloudclient.sites", false]], "find_endpoint() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.find_endpoint", false]], "find_endpoint_and_project_id() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.find_endpoint_and_project_id", false]], "find_site_data() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.find_site_data", false]], "find_vo_from_project_id() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.find_vo_from_project_id", false]], "format_project_as_dict() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.format_project_as_dict", false]], "format_project_as_list() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.format_project_as_list", false]], "get_access_token() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.get_access_token", false]], "get_checkin_id() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.get_checkin_id", false]], "get_keystone_url() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_keystone_url", false]], "get_projects_from_single_site() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_single_site", false]], "get_projects_from_sites() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_sites", false]], "get_projects_from_sites_as_dict() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_sites_as_dict", false]], "get_projects_from_sites_as_list() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_sites_as_list", false]], "get_projects_from_sites_with_format() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_projects_from_sites_with_format", false]], "get_scoped_token() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_scoped_token", false]], "get_sites() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_sites", false]], "get_token_from_mytoken_server() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.get_token_from_mytoken_server", false]], "get_token_from_oidc_agent() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.get_token_from_oidc_agent", false]], "get_unscoped_token() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.get_unscoped_token", false]], "list_sites() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.list_sites", false]], "module": [[3, "module-fedcloudclient.checkin", false], [3, "module-fedcloudclient.cli", false], [3, "module-fedcloudclient.endpoint", false], [3, "module-fedcloudclient.openstack", false], [3, "module-fedcloudclient.sites", false]], "oidc_discover() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.oidc_discover", false]], "print_error() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.print_error", false]], "print_result() (in module fedcloudclient.openstack)": [[3, "fedcloudclient.openstack.print_result", false]], "read_default_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.read_default_site_config", false]], "read_local_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.read_local_site_config", false]], "read_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.read_site_config", false]], "read_site_schema() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.read_site_schema", false]], "retrieve_unscoped_token() (in module fedcloudclient.endpoint)": [[3, "fedcloudclient.endpoint.retrieve_unscoped_token", false]], "safe_read_yaml_from_url() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.safe_read_yaml_from_url", false]], "save_site_config() (in module fedcloudclient.sites)": [[3, "fedcloudclient.sites.save_site_config", false]], "token_list_vos() (in module fedcloudclient.checkin)": [[3, "fedcloudclient.checkin.token_list_vos", false]], "tokenexception": [[3, "fedcloudclient.endpoint.TokenException", false]]}, "objects": {"fedcloudclient": [[3, 0, 0, "-", "checkin"], [3, 0, 0, "-", "cli"], [3, 0, 0, "-", "endpoint"], [3, 0, 0, "-", "openstack"], [3, 0, 0, "-", "sites"]], "fedcloudclient.checkin": [[3, 1, 1, "", "check_token"], [3, 1, 1, "", "decode_token"], [3, 1, 1, "", "get_access_token"], [3, 1, 1, "", "get_checkin_id"], [3, 1, 1, "", "get_token_from_mytoken_server"], [3, 1, 1, "", "get_token_from_oidc_agent"], [3, 1, 1, "", "oidc_discover"], [3, 1, 1, "", "print_error"], [3, 1, 1, "", "token_list_vos"]], "fedcloudclient.endpoint": [[3, 2, 1, "", "TokenException"], [3, 1, 1, "", "find_endpoint"], [3, 1, 1, "", "format_project_as_dict"], [3, 1, 1, "", "format_project_as_list"], [3, 1, 1, "", "get_keystone_url"], [3, 1, 1, "", "get_projects_from_single_site"], [3, 1, 1, "", "get_projects_from_sites"], [3, 1, 1, "", "get_projects_from_sites_as_dict"], [3, 1, 1, "", "get_projects_from_sites_as_list"], [3, 1, 1, "", "get_projects_from_sites_with_format"], [3, 1, 1, "", "get_scoped_token"], [3, 1, 1, "", "get_sites"], [3, 1, 1, "", "get_unscoped_token"], [3, 1, 1, "", "retrieve_unscoped_token"]], "fedcloudclient.openstack": [[3, 1, 1, "", "check_openstack_client_installation"], [3, 1, 1, "", "fedcloud_openstack"], [3, 1, 1, "", "fedcloud_openstack_full"], [3, 1, 1, "", "print_result"]], "fedcloudclient.sites": [[3, 1, 1, "", "delete_site_config"], [3, 1, 1, "", "find_endpoint_and_project_id"], [3, 1, 1, "", "find_site_data"], [3, 1, 1, "", "find_vo_from_project_id"], [3, 1, 1, "", "list_sites"], [3, 1, 1, "", "read_default_site_config"], [3, 1, 1, "", "read_local_site_config"], [3, 1, 1, "", "read_site_config"], [3, 1, 1, "", "read_site_schema"], [3, 1, 1, "", "safe_read_yaml_from_url"], [3, 1, 1, "", "save_site_config"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "exception", "Python exception"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:exception"}, "terms": {"": [2, 3], "0": [1, 2, 8, 9, 10], "01": 10, "02": 10, "04": [1, 10], "1": [9, 10], "10": 10, "100it": [8, 10], "16384": 9, "169": 1, "18": [1, 10], "2": [1, 9, 10], "20": [1, 10], "2021": 10, "2048": [1, 10], "2096": 10, "233f045cb1ff46842a15ebb33af69460": 10, "25": 10, "254": 1, "2638bab4662c": 9, "2a7e2cd4b6dc4e609dd934964c1715c6": 10, "2e562a51": 9, "2xk20m": 10, "300": 0, "3571": 10, "39": 10, "3b9754ad8c6046b4aec43ec21abe7d8c": 10, "4": 2, "40": [9, 10], "4096": 10, "40d5": 9, "4227": [8, 10], "462d": 10, "4cab325ca8c2495bf2d4e8f230bcd51a": 10, "4e0b": 10, "5000": [9, 10], "51f736d36ce34b9ebdf196cfcabd24e": [9, 10], "5b533844996c": 10, "5bbdb5c1e0b2bcbac29904f4ac22dcaa": 10, "5bd8397c": 10, "64": 9, "6a11": [8, 10], "7": [8, 10], "7101022b9ae74ed9ac1a574497279499": 10, "8": 9, "805e": 10, "8388": [8, 10], "862d4ede": [8, 10], "8861": 9, "8fc9": 9, "9d2b": 10, "A": 6, "As": 10, "By": [3, 10], "For": [0, 5, 6, 9, 10], "If": [0, 2, 3, 5, 10], "It": [0, 5, 8], "On": [0, 10], "That": 5, "The": [0, 3, 6, 8, 9, 10], "_fedcloud_complet": [1, 10], "a22bbffb007745b2934bf308b0a4d186": 10, "aai": 1, "abil": [3, 10], "about": 2, "abov": 10, "acc": 1, "acceler": [1, 9], "access": [1, 2, 3, 6, 8, 9, 10], "access_token": [3, 8, 10], "accord": [1, 3, 5, 8, 10], "account": [1, 3, 10], "action": 6, "activ": [1, 8, 10], "add": [0, 2, 3, 5, 10], "addit": [3, 10], "advanc": 8, "advantag": [3, 10], "affect": 10, "after": [0, 10], "again": 10, "agent": [0, 3, 4, 8, 10], "all": [1, 3, 6, 8, 9, 10], "all_sit": [1, 6, 8, 9, 10], "allow": 10, "alreadi": 9, "also": [0, 5, 10], "altern": 10, "alwai": 10, "an": [1, 2, 3, 6, 8, 10], "anchor": [0, 4], "ani": 6, "anyth": [3, 10], "api": [2, 4, 6, 10], "appdb": 1, "applianc": 1, "ar": [0, 3, 5, 6, 9, 10], "arg": [8, 10], "argument": 10, "auth": [1, 3, 10], "authent": [3, 4], "author": [0, 5, 10], "autom": [6, 9], "avail": [1, 2, 3, 6, 10], "b97f": 10, "bari": 10, "base": 3, "bash": [0, 1, 5, 8, 10], "bash_sourc": [1, 10], "bashrc": 10, "basic": 4, "befor": [3, 10], "begin": 10, "bellow": 10, "below": 10, "besid": [3, 10], "best": 10, "between": 10, "bifi": [8, 10], "bin": [1, 5], "both": 10, "bundl": [0, 1, 5], "c": 1, "c08r30": 10, "c16r60": 10, "c94141a5dac": [8, 10], "cach": 10, "call": [2, 3, 10], "can": [1, 2, 5, 6, 9, 10], "cat": [0, 1], "catania": 10, "cento": [0, 8, 10], "cert": [0, 1, 5], "certif": [0, 1, 4], "cesga": [1, 8, 10], "cesnet": 1, "chang": 10, "cheat": 4, "check": [0, 1, 2, 3, 5, 6, 8, 9, 10], "check_openstack_client_instal": [3, 7], "check_token": [3, 7], "checkin": [4, 6, 7, 10], "checkin_identity_provid": 3, "choos": 10, "cli": [4, 7], "click": 10, "client": [0, 6, 7, 8, 10], "cloud": [1, 2, 6, 8, 9, 10], "cluster": [6, 10], "code": [1, 2, 3, 8, 9], "com": [0, 1, 5], "combin": [8, 10], "command": [0, 2, 3, 4, 5, 6, 8], "comp": 1, "complementari": [3, 10], "complet": [1, 4], "complex": [1, 9], "comput": [6, 10], "config": [1, 3, 10], "config_dir": 3, "configur": [3, 5, 6, 8, 10], "connect": [0, 5, 10], "construct": 1, "contain": [2, 3, 4, 8], "conveni": 10, "copi": [1, 2, 10], "core": [0, 4], "correct": 5, "correctli": 2, "correspond": [3, 5, 10], "covid19": 10, "cpu": [1, 9, 10], "creat": [1, 5, 10], "curl": 1, "custom": [3, 10], "cyfronet": 2, "d340308880134d04294097524eace710": 10, "d34620ba0334": 10, "daemon": 0, "dashboard": 1, "dat": 10, "data": [1, 3, 10], "databas": [3, 10], "dc": 1, "decod": 3, "decode_token": [3, 7], "default": [0, 3, 5, 10], "defin": [3, 10], "delet": 3, "delete_site_config": [3, 7], "demo": [2, 10], "deploi": [6, 10], "describ": [0, 10], "descript": 6, "design": [6, 8], "detail": [0, 1, 2, 5, 10], "develop": 2, "df25f80f": 10, "dict": 3, "dictionari": 3, "differ": 10, "dir": [3, 10], "directli": [2, 3, 10], "directori": [3, 5, 10], "dirti": 1, "discov": 3, "disk": [3, 9, 10], "distribut": [0, 5], "do": [3, 10], "docker": [4, 8, 10], "document": [6, 10], "doe": [3, 10], "done": [1, 5, 10], "download": 2, "dump": 2, "dure": 0, "e": [3, 8, 9, 10], "each": 2, "easi": 2, "ec3": [4, 6], "echo": 9, "ed19": 10, "edit": 10, "edu": [1, 10], "eduperson_entitl": 1, "effect": 2, "egi": [0, 1, 2, 3, 4, 6, 8, 9, 10], "egi_access": 10, "egi_sit": 1, "egi_vo": [1, 10], "either": 9, "elast": [6, 10], "els": 2, "email": 1, "empti": 9, "enabl": 10, "endpoint": [1, 4, 6, 7, 8], "entropi": 0, "entropy_avail": 0, "env": [1, 10], "environ": [0, 1, 4, 5, 8], "eosc": [1, 8, 9, 10], "ephemer": [9, 10], "equival": [2, 10], "error": [0, 1, 2, 3, 5, 8, 9], "error_cod": [2, 3], "eu": [1, 2, 3, 6, 8, 9, 10], "eval": [1, 9, 10], "even": 10, "exampl": [1, 2, 6, 9, 10], "exc_msg": 3, "except": [0, 3, 5, 8, 9], "execut": [0, 1, 2, 5, 6, 8, 10], "exist": [3, 10], "exit": [8, 10], "expir": [1, 3, 10], "explain": 10, "explan": 10, "explicitli": [3, 10], "export": [1, 8, 9, 10], "extern": 4, "f": 1, "fals": 3, "faq": 4, "faster": [3, 10], "featur": 6, "fedcloud": [0, 1, 6, 7, 8], "fedcloud_bash_complet": [1, 10], "fedcloud_mytoken": [1, 10], "fedcloud_mytoken_serv": 10, "fedcloud_openstack": [2, 3, 7], "fedcloud_openstack_ful": [3, 7], "fedcloudcli": [1, 2, 4, 5, 6, 8], "feder": [1, 2, 6, 8, 10], "file": [1, 3, 5, 10], "filter": [4, 9], "find": 3, "find_endpoint": [3, 7], "find_endpoint_and_project_id": [3, 7], "find_site_data": [3, 7], "find_vo_from_project_id": [3, 7], "finish": 2, "first": [3, 10], "fix": 3, "fixedli": 10, "flavor": [1, 9, 10], "follow": [0, 5, 6, 9, 10], "form": [3, 9], "format": [1, 3, 8, 9, 10], "format_project_as_dict": [3, 7], "format_project_as_list": [3, 7], "found": 3, "fr": 10, "frequent": 10, "from": [2, 3, 4, 6, 8, 10], "frozen": 0, "full": [1, 3, 6, 10], "function": [2, 3, 6], "further": [8, 9], "g": [3, 8, 9, 10], "g1": 10, "gaaaaa": 10, "gen": 1, "gener": [3, 9, 10], "get": [1, 3, 6, 8, 10], "get_access_token": [3, 7], "get_checkin_id": [3, 7], "get_keystone_url": [3, 7], "get_projects_from_single_sit": [3, 7], "get_projects_from_sit": [3, 7], "get_projects_from_sites_as_dict": [3, 7], "get_projects_from_sites_as_list": [3, 7], "get_projects_from_sites_with_format": [3, 7], "get_scoped_token": [3, 7], "get_sit": [3, 7], "get_token_from_mytoken_serv": [3, 7], "get_token_from_oidc_ag": [3, 7], "get_unscoped_token": [3, 7], "github": [2, 3, 10], "githubusercont": [0, 1, 5], "give": [0, 3, 10], "given": 10, "global": 3, "goc": [3, 10], "gocdb": [3, 6, 8, 10], "gpu": [1, 9, 10], "grid": [3, 10], "group": [8, 10], "ha": [3, 10], "hand": 10, "have": [0, 3, 6, 8, 9, 10], "haveg": 0, "help": [1, 4, 8], "helper": [3, 10], "hep": 10, "here": [0, 10], "high": 6, "home": 10, "horizon": 1, "how": 2, "howev": 10, "http": [0, 1, 3, 5, 6, 9, 10], "huge": 10, "i": [0, 1, 2, 3, 5, 6, 8, 9, 10], "id": [1, 3, 8, 9, 10], "ident": 3, "ifca": [1, 10], "ignore_missing_vo": 3, "igtf": 1, "iisa": [1, 6, 8, 9, 10], "imag": [1, 2, 3, 6, 8, 10], "implement": 3, "import": 2, "in2p3": 10, "inaccess": 10, "includ": [0, 3, 5, 6, 10], "indent": 2, "index": 4, "infn": 10, "info": 3, "inform": [3, 4, 8, 10], "infrastructur": [6, 10], "init": 10, "initi": 0, "input": [2, 10], "instal": [0, 3, 4, 6, 8], "install_cert": [0, 1, 5], "instead": [3, 10], "instruct": [0, 5, 8, 10], "int": [3, 8, 10], "interact": [3, 6, 8, 10], "introduct": 4, "ir": 10, "issu": [0, 1, 5], "issuer": 1, "its": [2, 5], "join": 10, "jq": [1, 4], "json": [1, 2, 3, 4, 8, 10], "json_output": 3, "just": [0, 1, 2, 5], "k20m": 10, "kei": 1, "kernel": 0, "keychain": 1, "keypair": 1, "keyston": [3, 6, 10], "kit": [1, 10], "know": 10, "known": 0, "larg": 10, "latest": [1, 5], "lcg2": [1, 10], "length": [1, 9], "less": 10, "level": 6, "librari": [0, 2, 6], "libsodium": 0, "like": [5, 6, 10], "lill": 10, "line": [2, 3, 6, 10], "list": [1, 2, 3, 6, 8, 9, 10], "list_sit": [3, 7], "load": [1, 3, 10], "local": [3, 4, 5, 10], "locat": 3, "log": 1, "long": [1, 2, 3, 9, 10], "longer": 1, "lot": 10, "lower": 0, "m": 1, "m1": [9, 10], "machin": [0, 1, 6, 8, 9], "mai": [1, 6, 10], "main": [0, 1, 3, 5, 10], "mainli": [0, 6], "make": [3, 5, 10], "manag": [3, 6, 10], "mani": [6, 10], "manipul": [3, 8, 10], "manual": 0, "map": [3, 4, 9], "master": 1, "match": 10, "max_length": 3, "mcc": 1, "md": [0, 5], "medium": [9, 10], "member": 6, "membership": [1, 3, 8, 10], "mention": 10, "messag": [0, 2, 3, 5, 8, 10], "mode": 10, "modul": [4, 6, 7], "monitor": 3, "more": [0, 2, 4, 5, 8, 9], "most": [2, 6, 10], "multipl": 10, "must": 2, "my": 1, "mytoken": [1, 3, 10], "mytoken_serv": 3, "name": [1, 3, 8, 9, 10], "nano": 9, "nation": [0, 5], "necessari": 10, "need": [3, 10], "network": 10, "new": [3, 8, 10], "newest": 10, "next": 8, "none": 3, "notabl": 6, "note": 9, "notif": 10, "nova": 10, "null": [8, 9], "o": [0, 3, 5], "object": [1, 2, 3], "obtain": 10, "oidc": [0, 3, 4, 8, 10], "oidc_access_token": [3, 8, 10], "oidc_agent_account": [1, 3, 10], "oidc_discov": [3, 7], "oidc_token": 3, "oidc_url": 3, "ok": 2, "onc": [1, 10], "onli": [1, 3, 6, 9, 10], "openid": [3, 10], "openstack": [2, 4, 5, 6, 7, 8], "openstack_auth_protocol": [3, 10], "openstack_auth_provid": 10, "openstack_auth_typ": [3, 10], "openstack_command": [3, 10], "openstackcli": 5, "oper": [3, 6, 10], "option": [2, 3, 5, 8, 10], "order": 10, "org": [1, 10], "organis": 10, "os_access_token": 10, "os_auth_typ": 10, "os_auth_url": [3, 9, 10], "os_identity_provid": 10, "os_project_id": [9, 10], "os_protocol": 10, "os_token": [1, 10], "other": [1, 2, 3, 8, 9, 10], "otherwis": [3, 10], "out": 9, "output": [1, 2, 3, 4, 8, 10], "output_format_funct": 3, "overwrit": [3, 10], "own": 1, "owner": 10, "packag": [5, 6], "padova": 10, "page": 4, "param": 3, "paramet": [2, 3, 6, 9, 10], "part": [3, 10], "pass": [1, 3, 10], "path": [3, 5], "perform": [3, 6, 10], "pip": [1, 4, 8], "pip3": [4, 5, 8], "place": 10, "portal": [8, 10], "preinstal": 5, "present": [6, 8], "press": 10, "previou": 1, "previous": 1, "print": [1, 2, 3, 8, 9, 10], "print_error": [3, 7], "print_result": [3, 7], "privat": 10, "privileg": 5, "probe": [3, 10], "problem": 0, "proc": 0, "process": [2, 4, 8], "product": 3, "program": 6, "programm": 6, "project": [1, 3, 9, 10], "project_id": [3, 10], "properti": [1, 9], "protocol": [3, 10], "provid": [3, 10], "pub": 1, "public": [9, 10], "pull": [1, 5], "py": 2, "python": [0, 1, 4, 5, 6], "python3": 1, "quick": [0, 1, 4, 5], "quiet": 3, "r": [1, 9], "radl": 10, "rais": 3, "ram": [1, 9, 10], "random": 0, "rang": 6, "raw": [0, 1, 5], "read": [2, 3, 8, 10], "read_default_site_config": [3, 7], "read_local_site_config": [3, 7], "read_site_config": [3, 7], "read_site_schema": [3, 7], "readm": [0, 5], "realm": 1, "reboot": 0, "receiv": [0, 5], "recommend": 10, "refer": [2, 4, 10], "refresh": 10, "regex": 1, "regist": 10, "relat": [3, 6], "rememb": 10, "remov": [1, 3, 10], "repeat": 10, "repositori": [3, 10], "request": [0, 1, 3, 5], "requir": [5, 10], "resourc": [4, 10], "respons": 10, "restart": 1, "result": [0, 2, 3, 4, 8, 9], "retriev": 1, "retrieve_unscoped_token": [3, 7], "return": 3, "rich": 6, "rng": 0, "root": [1, 5], "run": [1, 5, 6, 8], "safe": 3, "safe_read_yaml_from_url": [3, 7], "savba": [9, 10], "save": [3, 10], "save_site_config": [3, 7], "sbgcloud": 10, "scenario": 8, "schema": 3, "scope": [1, 3, 6, 10], "script": [0, 1, 4, 5, 6, 10], "search": [3, 4, 6], "second": 10, "secret": [4, 6], "section": 8, "see": [0, 1, 2, 5], "select": [4, 9], "server": [1, 3, 8, 10], "servic": [1, 2, 3, 6, 10], "service_typ": 3, "set": [1, 2, 3, 4, 8, 10], "setup": 4, "sh": [0, 1, 5, 10], "share": 10, "sheet": 4, "shell": [1, 4], "short": [6, 10], "shorter": 1, "should": 5, "show": [1, 8, 9, 10], "shown": 10, "side": 2, "simpl": [6, 9], "simpler": 1, "simpli": 5, "simplifi": 3, "singl": [2, 6], "site": [0, 1, 2, 4, 5, 6, 7, 8, 9], "site_nam": 3, "six": [6, 10], "size": 3, "sk": [9, 10], "small": 10, "so": [3, 10], "some": [0, 5], "sort": 10, "sourc": [1, 2, 3, 10], "spec": [1, 10], "specif": 10, "specifi": [3, 6], "ssl": [0, 5], "stack": 10, "start": [0, 1, 4], "statu": [3, 8, 10], "stderr": 3, "step": 8, "store": [2, 3, 10], "string": [2, 3], "success": 10, "sudo": [1, 5], "suitabl": 10, "support": 3, "sure": 5, "sy": 0, "synergi": [1, 8, 9, 10], "systemat": 1, "tab": 10, "tabl": 10, "task": 6, "tdviet": [0, 1, 5, 8], "templat": 10, "termin": 1, "test": [0, 3, 5, 10], "testvm": 1, "than": 0, "thei": [3, 10], "them": [0, 3, 5, 9, 10], "thi": [0, 5, 6, 8, 9, 10], "three": 6, "time": [1, 3, 10], "titl": 1, "togeth": 5, "token": [1, 2, 3, 4, 6, 8], "token_list_vo": [3, 7], "tokenexcept": [3, 7], "tool": [0, 2, 4], "train": [1, 8, 10], "troubleshoot": 4, "true": [3, 9, 10], "trust": [0, 4], "try": [3, 10], "tupl": [2, 3], "tutori": [1, 6, 8], "twice": 10, "txt": 1, "type": [1, 3, 9, 10], "u": 5, "ubuntu": [1, 10], "ui": [9, 10], "univ": 10, "unrespons": 1, "unscop": [3, 6], "unscoped_token": 3, "unsupport": 9, "url": [3, 10], "us": [0, 3, 4, 6, 8, 10], "usag": [4, 6], "user": [1, 3, 5, 6, 8, 9, 10], "user_data": 1, "usr": 5, "utc": 10, "v": 1, "v3": [9, 10], "v3oidcaccesstoken": [3, 10], "valid": [3, 10], "valu": [1, 2, 9, 10], "var": 9, "variabl": [1, 3, 4, 8], "variou": 6, "vcpu": [1, 9, 10], "venv": 1, "verbos": 3, "version": [1, 3, 5], "via": [3, 4, 6, 8, 10], "viet": 10, "virtual": [0, 1, 5, 6, 10], "virtual_env": 5, "virtualbox": [1, 8, 10], "visit": 10, "vm": [0, 1, 6, 8, 10], "vo": [1, 2, 3, 6, 8, 9, 10], "vo_access_egi_eu": 10, "wai": 1, "want": 9, "websit": 10, "wget": [0, 1, 5], "when": [0, 5, 10], "whether": 10, "which": [0, 10], "wide": 6, "without": [2, 5, 9, 10], "work": [1, 2, 10], "xlarg": [9, 10], "yaml": 10, "you": [0, 1, 5, 8], "your": [1, 2, 5, 8], "your_access_token": 2}, "titles": ["FAQ and Troubleshooting", "Cheat sheet", "Using FedCloud client in Python", "FedCloud client API references", "Welcome to FedCloud client's documentation!", "Installation", "Introduction", "fedcloudclient API references", "Quick start", "Using FedCloud client in scripts", "Usage"], "titleterms": {"": 4, "agent": 1, "anchor": 5, "api": [3, 7], "authent": 10, "basic": [1, 8], "certif": 5, "cheat": 1, "checkin": 3, "cli": 3, "client": [2, 3, 4, 5, 9], "command": [1, 9, 10], "complet": 10, "contain": [1, 5], "content": 4, "core": 5, "docker": [1, 5], "document": 4, "ec3": 10, "egi": 5, "endpoint": [3, 10], "environ": [9, 10], "extern": 9, "faq": 0, "fedcloud": [2, 3, 4, 5, 9, 10], "fedcloudcli": [3, 7], "filter": 1, "from": [1, 9], "help": 10, "indic": 4, "inform": 1, "instal": [1, 5], "introduct": 6, "jq": 9, "json": 9, "local": 1, "map": 1, "modul": 3, "more": 1, "oidc": 1, "openstack": [1, 3, 9, 10], "output": 9, "pip": 5, "pip3": 1, "process": 9, "python": 2, "quick": 8, "refer": [3, 7], "resourc": 1, "result": 1, "script": 9, "search": 1, "secret": 10, "select": [1, 10], "set": 9, "setup": 8, "sheet": 1, "shell": 10, "site": [3, 10], "start": 8, "tabl": 4, "token": 10, "tool": 9, "troubleshoot": 0, "trust": 5, "us": [1, 2, 5, 9], "usag": [1, 8, 10], "variabl": [9, 10], "via": [1, 5, 9], "welcom": 4}}) \ No newline at end of file diff --git a/usage.html b/usage.html index e0bf981..8d50d0f 100644 --- a/usage.html +++ b/usage.html @@ -1,5 +1,5 @@ - + @@ -15,9 +15,9 @@ - - - + + + @@ -96,7 +96,7 @@
    -

    Usage

    +

    Usage

    FedCloud client has six main groups of commands:

    -

    Authentication

    +

    Authentication

    Many fedcloud commands need access tokens for authentication. Users can choose whether to provide access tokens directly (via option "--oidc-access-token"), via oidc-agent (via option "--oidc-agent-account"), or via mytoken (via option "--mytoken").

    @@ -124,7 +124,7 @@

    Authentication -

    Environment variables

    +

    Environment variables

    Most of fedcloud options, including options for tokens can be set via environment variables:

    @@ -172,7 +172,7 @@

    Environment variables
    -

    Shell completion

    +

    Shell completion

    Shell completion for fedcloud command in bash can be activated by executing the following command:

    $ eval "$(_FEDCLOUD_COMPLETE=bash_source fedcloud)"
     
    @@ -187,7 +187,7 @@

    Shell completion -

    fedcloud --help command

    +

    fedcloud --help command

    • "fedcloud --help" command will print help message. When using it in combination with other commands, e.g. "fedcloud token --help", "fedcloud token check --hep", it will print list of options for the @@ -209,7 +209,7 @@

      fedcloud --help command

    -

    fedcloud token commands

    +

    fedcloud token commands

    • "fedcloud token check --oidc-access-token <ACCESS_TOKEN>": Check the expiration time of access token, so users can know whether they need to refresh it. As mentioned before, access token may be given via environment variable OIDC_ACCESS_TOKEN, @@ -231,7 +231,7 @@

      fedcloud token commands

    -

    fedcloud endpoint commands

    +

    fedcloud endpoint commands

    "fedcloud endpoint" commands are complementary part of the "fedcloud site" commands. Instead of using site configurations defined in files saved in GitHub repository or local disk, the commands try to get site information directly from GOCDB (Grid Operations Configuration Management Database) https://goc.egi.eu/ or make probe test on sites

    @@ -309,7 +309,7 @@

    fedcloud endpoint commands -

    fedcloud ec3 commands

    +

    fedcloud ec3 commands

    "fedcloud ec3" commands are helper commands for deploying EC3 (Elastic Cloud Compute Cluster) in Cloud via Infrastructure Manager. The commands will create necessary template and authorization files for EC3 client.

      @@ -329,7 +329,7 @@

      fedcloud ec3 commands

    -

    fedcloud site commands

    +

    fedcloud site commands

    "fedcloud site" commands will read site configurations and manipulate with them. If the local site configurations exist at ~/.config/fedcloud/site-config/, fedcloud will read them from there, otherwise the commands will read from GitHub repository.

    @@ -399,7 +399,7 @@

    fedcloud site commands

    -

    fedcloud select commands

    +

    fedcloud select commands

    • "fedcloud select flavor --site <SITE> --vo <VO> --oidc-access-token <ACCESS_TOKEN> --flavor-specs <flavor-specs>" : Select flavor according to the specification in flavor-specs. The specifications may be repeated, @@ -446,7 +446,7 @@

      fedcloud select commands -

      fedcloud openstack commands

      +

      fedcloud openstack commands

      • "fedcloud openstack --site <SITE> --vo <VO> --oidc-access-token <ACCESS_TOKEN> <OPENSTACK_COMMAND>" : Execute an OpenStack command on the site and VO. Examples of OpenStack commands are "image list", "server list" and can be used @@ -490,7 +490,7 @@

        fedcloud openstack commands -

        fedcloud secret commands

        +

        fedcloud secret commands

        The "fedcloud secret" commands are described in details in the documentation of the Secret management service.