<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Powershell module - Architect the cloud</title>
	<atom:link href="https://blog.slepcevic.net/tag/powershell-module/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.slepcevic.net</link>
	<description></description>
	<lastBuildDate>Fri, 05 Jul 2024 09:49:49 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>
	<item>
		<title>Powershell module for Linode &#8211; Akamai Connected Cloud</title>
		<link>https://blog.slepcevic.net/powershell-module-for-linode-akamai-connected-cloud/</link>
					<comments>https://blog.slepcevic.net/powershell-module-for-linode-akamai-connected-cloud/#respond</comments>
		
		<dc:creator><![CDATA[Alesandro Slepčević]]></dc:creator>
		<pubDate>Sun, 30 Jun 2024 13:09:53 +0000</pubDate>
				<category><![CDATA[Akamai Connected Cloud]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Powershell]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Linode]]></category>
		<category><![CDATA[Linode PowerShell Module]]></category>
		<category><![CDATA[Powershell module]]></category>
		<guid isPermaLink="false">https://blog.slepcevic.net/?p=487</guid>

					<description><![CDATA[<p>Even though I consider myself as being &#8220;platform-agnostic&#8221;, I originally come from a Microsoft side of the industry and because of that I had a lot of exposure to PowerShell. After a relatively steep learning curve, I realized that PowerShell...</p>
<p>The post <a href="https://blog.slepcevic.net/powershell-module-for-linode-akamai-connected-cloud/">Powershell module for Linode – Akamai Connected Cloud</a> first appeared on <a href="https://blog.slepcevic.net">Architect the cloud</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Even though I consider myself as being &#8220;platform-agnostic&#8221;, I originally come from a Microsoft side of the industry and because of that I had a lot of exposure to PowerShell. </p>



<p>After a relatively steep learning curve, I realized that PowerShell is cool and VERY powerful for some use cases. </p>



<p></p>



<p>Well, as a small side project, I started working on a <a href="https://github.com/slepix/LinodePowerShell" target="_blank" rel="noopener" title="">Powershell module</a> for Akamai Connected Cloud (Linode) platform.</p>



<p><strong>Why? Why not!? </strong></p>



<p>Linode is already known as being <a href="https://www.linode.com/developers/" target="_blank" rel="noopener" title="">VERY developer friendly</a>, why not make it even more friendlier <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>General idea was to generate a module which will directly talk to the Linode API and eventually expose all platform features via some commandlet. </p>



<p>Besides that, I also wanted to implement some quality of life features which current Linode CLI doesn&#8217;t have.</p>



<h5 class="wp-block-heading">Using the label/name of the resource in your commands.</h5>



<p>With the current <a href="https://www.linode.com/docs/products/tools/cli/get-started/" target="_blank" rel="noopener" title="">linode-cli</a>, you need to use the resource ID in all commands which is a bit annoying for some use cases <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>With this module, you can use the resource label/name in your commands, and in the background the module will convert the label provided to a resource ID and use that to talk to the API. </p>



<h5 class="wp-block-heading">Support for multiple Linode accounts and account switching.</h5>



<p>I also implemented the possibility to have and switch between multiple different Linode &#8220;profiles&#8221;. </p>



<p>You can have a profile for your development Linode account, a profile for your test Linode account and switch between them using a single command. </p>



<h5 class="wp-block-heading">Generate a random password when launching an instance</h5>



<p>When you deploy instances with the linode-cli, you need to provide a password for the instance. </p>



<p>Since humans are lazy, we most probably end up using the same password over and over again. This feature will make sure that you always get a secure password generated for your Linode. Of course, you are still free to provide your own password if you like. </p>



<h6 class="wp-block-heading"><strong>Check out the examples below to see how all of these things work. </strong></h6>



<p></p>



<h4 class="wp-block-heading"><strong>How to start? It&#8217;s really easy! You will be up and running in less than 2 minutes!</strong></h4>



<h4 class="wp-block-heading">Installation</h4>



<p>To install the Linode PowerShell module, you need to clone the repository, position yourself into the module folder and import the module:</p>



<pre class="wp-block-code"><code>git clone https://github.com/slepix/LinodePowerShell.git
cd LinodePowerShell</code></pre>



<p></p>



<h4 class="wp-block-heading">Usage</h4>



<p>Before you can use the module, you need to import it using the following command:</p>



<pre class="wp-block-code"><code>Import-Module -Name .\LinodePSModule.psd1</code></pre>



<p>After the module has been imported, you need to configure it and add your Linode account.</p>



<h4 class="wp-block-heading">Configuration</h4>



<p>Configuration is really simple, all you need to do is run&nbsp;<strong>&#8216;Connect-LinodeAccount&#8217;</strong>&nbsp;command and follow the configuration wizard.</p>



<pre class="wp-block-code"><code>Connect-LinodeAccount</code></pre>



<p></p>



<p><strong>You can run </strong>&#8220;Connect-LinodeAccount&#8221; <strong>command for each Linode account you want to add.</strong></p>



<pre class="wp-block-preformatted">IMPORTANT!!!<br>When creating a new profile, you will be asked if you want to encrypt your Linode token or not. If you decide to encrypt the token, you won't be able to manually edit the profile file and edit the token. <br><br>It is recommended that you use encrypted profile option and recreate a profile if you need to change the token.<br></pre>



<p>User configuration is stored in &#8220;<strong>$HOME\.LinodePSModule\$name-profile.json</strong>&#8220;</p>



<p>Check in the examples below how you can switch between different Linode accounts.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><em><strong>NOTE:</strong></em><br><strong>You will need Linode API token with the READ/WRITE permissions for all resources in order to get the full functionality of this module.<br>However, you are free to limit the scope of the API token to suit your security and usage requirements</strong>.</p>
</blockquote>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="350" src="https://blog.slepcevic.net/wp-content/uploads/2024/06/blogpsmodule-1024x350.png" alt="" class="wp-image-609" srcset="https://blog.slepcevic.net/wp-content/uploads/2024/06/blogpsmodule-1024x350.png 1024w, https://blog.slepcevic.net/wp-content/uploads/2024/06/blogpsmodule-300x103.png 300w, https://blog.slepcevic.net/wp-content/uploads/2024/06/blogpsmodule-768x262.png 768w, https://blog.slepcevic.net/wp-content/uploads/2024/06/blogpsmodule.png 1191w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p></p>



<h4 class="wp-block-heading">Available commands</h4>



<p><a href="https://github.com/slepix/LinodePowerShell#commands"></a></p>



<p>List of currently available commands can be viewed by running this command</p>



<pre class="wp-block-code"><code>(Get-Module LinodePSModule).ExportedCommands</code></pre>



<p></p>



<h4 class="wp-block-heading">Example commands</h4>



<p><a href="https://github.com/slepix/LinodePowerShell#example-commands"></a></p>



<p><strong>List all currently configured profiles</strong></p>



<pre class="wp-block-code"><code>PS C:\&gt; Get-LinodeProviderProfiles # returns a list of all configured profiles
development
test</code></pre>



<p></p>



<p><strong>Switch to a profile named &#8220;test&#8221;</strong></p>



<pre class="wp-block-code"><code>PS C:\&gt; Set-LinodeProviderProfile -profile test
Profile test loaded</code></pre>



<p></p>



<p><strong>Get a list of all regions, but only return label, id and status of each region</strong></p>



<pre class="wp-block-code"><code>PS C:\&gt; Get-LinodeRegions | Select label, id, status

label           id           status
-----           --           ------
Mumbai, IN      ap-west      ok
Toronto, CA     ca-central   ok
Sydney, AU      ap-southeast ok
Washington, DC  us-iad       ok
Chicago, IL     us-ord       ok
Paris, FR       fr-par       ok
Seattle, WA     us-sea       ok
Sao Paulo, BR   br-gru       ok
Amsterdam, NL   nl-ams       ok
Stockholm, SE   se-sto       ok
Madrid, ES      es-mad       ok
Chennai, IN     in-maa       ok
Osaka, JP       jp-osa       ok
Milan, IT       it-mil       ok
Miami, FL       us-mia       ok
Jakarta, ID     id-cgk       ok
Los Angeles, CA us-lax       ok
Dallas, TX      us-central   ok
Fremont, CA     us-west      ok
Atlanta, GA     us-southeast ok
Newark, NJ      us-east      ok
London, UK      eu-west      ok
Singapore, SG   ap-south     ok
Frankfurt, DE   eu-central   ok
Tokyo, JP       ap-northeast ok</code></pre>



<p></p>



<p></p>



<p><strong>Returns all properties of a single region</strong></p>



<pre class="wp-block-code"><code>PS C:\&gt; Get-LinodeRegion -region nl-ams # list only nl-ams region

id                     : nl-ams
label                  : Amsterdam, NL
country                : nl
capabilities           : {Linodes, Backups, NodeBalancers, Block Storage...}
status                 : ok
resolvers              : @{ipv4=172.233.33.36, 172.233.33.38, 172.233.33.35,     172.233.33.39, 172.233.33.34, 172.233.33.33, 172.233.33.31, 172.233.33.30, 172.233.33.37, 172.233.33.32;
                         ipv6=2600:3c0e::f03c:93ff:fe9d:2d10, 2600:3c0e::f03c:93ff:fe9d:2d89, 2600:3c0e::f03c:93ff:fe9d:2d79, 2600:3c0e::f03c:93ff:fe9d:2d96, 2600:3c0e::f03c:93ff:fe9d:2da5,     
                         2600:3c0e::f03c:93ff:fe9d:2d34, 2600:3c0e::f03c:93ff:fe9d:2d68, 2600:3c0e::f03c:93ff:fe9d:2d17, 2600:3c0e::f03c:93ff:fe9d:2d45, 2600:3c0e::f03c:93ff:fe9d:2d5c}
placement_group_limits : @{maximum_pgs_per_customer=100; maximum_linodes_per_pg=5}
site_type              : core</code></pre>



<p></p>



<p>Create a new Linode named &#8220;<strong>myInstance</strong>&#8221; with the instance type of &#8220;<strong>g6-nanode-1</strong>&#8221; in <strong>nl-ams</strong> region and a <strong>randomly generated password</strong> <strong>25 characters long</strong> running <strong>Debian 11</strong></p>



<pre class="wp-block-code"><code>PS C:\&gt; New-LinodeInstance -label myInstance -region nl-ams -type g6-nanode-1 -image linode/debian11 -generatepassword -passwordlength 25


id               : 60827598
label            : myInstance
group            :
status           : provisioning
created          : 2024-06-30T01:23:46
updated          : 2024-06-30T01:23:46
type             : g6-nanode-1
ipv4             : {172.233.40.46}
ipv6             : 2600:3c0e::f03c:94ff:fe85:29cf/128
image            : linode/debian11
region           : nl-ams
specs            : @{disk=25600; memory=1024; vcpus=1; gpus=0; transfer=1000}
alerts           : @{cpu=90; network_in=10; network_out=10; transfer_quota=80; io=10000}
backups          : @{enabled=False; available=False; schedule=; last_successful=}
hypervisor       : kvm
watchdog_enabled : True
tags             : {}
host_uuid        : 5f337dda11805445fc391c91e6dcbf45c2a38a21
has_user_data    : False
placement_group  :
lke_cluster_id   :
root_password    : eJbd\OQC9ypSagfvTSG@XREV4</code></pre>



<p></p>



<p><strong>Delete a Linode instance</strong></p>



<p><strong>All destructive commands</strong> will force you to use &#8220;-confirm&#8221; flag in order to actually delete a resource.</p>



<pre class="wp-block-code"><code>PS C:\&gt; Remove-LinodeInstance -label myInstance  
Please use the -confirm flag in order to delete an instance</code></pre>



<p></p>



<pre class="wp-block-code"><code>PS C:\&gt; Remove-LinodeInstance -label myInstance -confirm
Instance 60827598 deleted</code></pre>



<p></p>



<h5 class="wp-block-heading">Every other command</h5>



<p>Even though each commandlet will ask you for parameters, you can also use&nbsp;<em><strong>&#8216;Get-Help&#8217;</strong></em>&nbsp;commandlet in order to find out which parameters each command requires.</p>



<p><strong>Example for &#8220;New-LinodeVPC&#8221; command:</strong></p>



<pre class="wp-block-code"><code>PS /&gt; Get-Help New-LinodeVPC

NAME
    New-LinodeVPC

SYNTAX
    New-LinodeVPC &#91;&#91;-description] &lt;string&gt;] &#91;&#91;-apiVersion] &lt;string&gt;] &#91;&#91;-label] &lt;string&gt;] &#91;&#91;-token] &lt;string&gt;] &#91;&#91;-region] &lt;string&gt;] &#91;&#91;-subnetlabel] &lt;string&gt;] &#91;&#91;-iprange] &lt;string&gt;] &#91;&lt;CommonParameters&gt;]

ALIASES
    None

REMARKS
    None</code></pre>



<p></p>



<h4 class="wp-block-heading"></h4>



<p></p>



<h4 class="wp-block-heading">Cool stuff and other quality of life improvements</h4>



<p>Compared to Linode&#8217;s existing CLI, this module will allow you to specify a label for most of the resources you&#8217;re working with. In the background the module will convert the label to the ID of the resource for you.</p>



<p>Example of retrieving an instance details using&nbsp;<a href="https://www.linode.com/docs/products/tools/cli/guides/install/">linode-cli</a>:</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="415" src="https://blog.slepcevic.net/wp-content/uploads/2024/06/linodecli-1024x415.png" alt="" class="wp-image-517" srcset="https://blog.slepcevic.net/wp-content/uploads/2024/06/linodecli-1024x415.png 1024w, https://blog.slepcevic.net/wp-content/uploads/2024/06/linodecli-300x121.png 300w, https://blog.slepcevic.net/wp-content/uploads/2024/06/linodecli-768x311.png 768w, https://blog.slepcevic.net/wp-content/uploads/2024/06/linodecli.png 1089w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>Example retrieving an instance details using Linode Powershell module:</strong></p>



<pre class="wp-block-code"><code>PS C:\&gt; Get-Linodeinstance -label blog.dummyserver.net

id               : 12374123
label            : blog.dummyserver.net
group            :
status           : running
created          : 2024-02-29T17:53:49
updated          : 2024-06-29T00:35:47
type             : g6-standard-2
ipv4             : {172.123.123.123}
ipv6             : 2600:4c0e::f04c:95ff:fe48:cda4/128
image            : linode/ubuntu22.04
region           : nl-ams
specs            : @{disk=81920; memory=4096; vcpus=2; gpus=0; transfer=4000}
alerts           : @{cpu=180; network_in=10; network_out=10; transfer_quota=80; io=10000}
backups          : @{enabled=True; available=True; schedule=; last_successful=2024-06-29T00:29:24}
hypervisor       : kvm
watchdog_enabled : True
tags             : {prod}
host_uuid        : 123f8e495e9d51c53df4fa074e5844bce944a068
has_user_data    : True
placement_group  :
lke_cluster_id   :</code></pre>



<p></p>



<h4 class="wp-block-heading">Development status as of 30.06.2024</h4>



<figure class="wp-block-table alignwide"><table><tbody><tr><td>Percent complete</td><td><strong>51.35%</strong></td></tr><tr><td>Total API commands:</td><td>368</td></tr><tr><td>Implemented Powershell commands</td><td>189</td></tr></tbody></table></figure>



<p>Live status: <a href="https://docs.google.com/spreadsheets/d/1UCzCSL3fRUB6cJKZJBUFEq-hPzaxGcS7B37nP12Ee3I/edit?gid=1065465499#gid=1065465499" target="_blank" rel="noopener" title="">https://docs.google.com/spreadsheets/d/1UCzCSL3fRUB6cJKZJBUFEq-hPzaxGcS7B37nP12Ee3I/edit?gid=1065465499#gid=1065465499</a></p>



<p>Development is focused on providing the <strong>most important features from the start</strong>, so that&#8217;s the reason you will see a lot of less important functionalities being implemented halfway or &#8220;almost there&#8221;.</p>



<p>This is a very active project and my expectation is that in the next few weeks there will be full coverage.</p>



<p>Status of implementation is as follows:</p>



<figure class="wp-block-table"><table><thead><tr><th>Area</th><th>Status</th><th>Notes</th></tr></thead><tbody><tr><td><strong>Account</strong></td><td><strong>Done</strong></td><td>All functionalities besides billing available.</td></tr><tr><td><strong>Beta programs</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available</strong></td></tr><tr><td><strong>Account availability</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available</strong></td></tr><tr><td><strong>Child accounts</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Payments</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Entity transfers</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Events</strong></td><td>WIP</td><td>Everything besides &#8220;Mark as read/seen&#8221; has been implemented</td></tr><tr><td><strong>Invoices</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available</strong></td></tr><tr><td><strong>Logins</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available</strong></td></tr><tr><td><strong>Maintenances</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available</strong></td></tr><tr><td><strong>Notifications</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available</strong></td></tr><tr><td><strong>Oauth Clients</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Client thumbnails</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Payment methods</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Promo credits</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Service transfers</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Account settings</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Settings</strong></td><td>Not started</td><td>None</td></tr><tr><td><strong>Account transfer</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available.</strong></td></tr><tr><td><strong>Users</strong></td><td><strong>Done</strong></td><td>Everything besides &#8220;Update user&#8217;s grant&#8221; command is implemented.</td></tr><tr><td><strong>Beta programs</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available.</strong></td></tr><tr><td><strong>Databases</strong></td><td>WIP</td><td>MySQL 95% done, PostgreSQL 0%.</td></tr><tr><td><strong>Domains</strong></td><td>WIP</td><td>All GET commands done, 80% of write commands done.</td></tr><tr><td><strong>Images</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available.</strong></td></tr><tr><td><strong>Instances</strong></td><td>WIP</td><td>60% done. Most important features like VM management are already available</td></tr><tr><td><strong>StackScripts</strong></td><td>WIP</td><td>80% done. All &#8220;GET&#8221; commands available</td></tr><tr><td><strong>LKE</strong></td><td>WIP</td><td>95% done. All &#8220;GET&#8221; commands available</td></tr><tr><td><strong>Longview</strong></td><td>WIP</td><td>0% done</td></tr><tr><td><strong>Managed</strong></td><td>WIP</td><td>0% done</td></tr><tr><td><strong>Networking</strong></td><td>WIP</td><td>80% done. All &#8220;GET&#8221; commands available</td></tr><tr><td><strong>NodeBalancers</strong></td><td>WIP</td><td>80% done. All &#8220;GET&#8221; commands available</td></tr><tr><td><strong>Object storage</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available.</strong></td></tr><tr><td><strong>Placement groups</strong></td><td>WIP</td><td>0% done</td></tr><tr><td><strong>Profile</strong></td><td>WIP</td><td>0% done</td></tr><tr><td><strong>Regions</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available.</strong></td></tr><tr><td><strong>Support</strong></td><td>WIP</td><td>0% done</td></tr><tr><td><strong>Tags</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available.</strong></td></tr><tr><td><strong>Volumes</strong></td><td>WIP</td><td>50% done</td></tr><tr><td><strong>VPC</strong></td><td><strong>Done</strong></td><td><strong>All functionalities available.</strong></td></tr></tbody></table></figure>



<h4 class="wp-block-heading">Roadmap</h4>



<p>Since this is a &#8220;weekend&#8221; project, no dates will be listed here <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p> Project is under very active development and I&#8217;m expecting to finish the first stage in the next few weeks</p>



<p></p>



<ul class="wp-block-list">
<li><strong>Stage 1 &lt; -WE ARE HERE (30.06.2024)</strong>
<ul class="wp-block-list">
<li>Full functionality coverage &#8211; 45% done</li>
</ul>
</li>



<li>Stage 2
<ul class="wp-block-list">
<li>Write Pester tests for all functionalities</li>
</ul>
</li>



<li>Stage 3
<ul class="wp-block-list">
<li>Build test and release pipelines</li>
</ul>
</li>



<li>Stage 4
<ul class="wp-block-list">
<li>Get a signing certificate &amp; publish to NuGet gallery if project gets enough traction</li>
</ul>
</li>
</ul>



<h4 class="wp-block-heading">Contributing</h4>



<p>To report a bug or request a feature in the module, please open a&nbsp;<a href="https://github.com/slepix/LinodePowerShell/issues">GitHub Issue</a>. Will be happy to check it out &lt;3</p>



<p>Have fun with it, please provide feedback (especially around naming commandlets) and until next time <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p>Alex!</p><p>The post <a href="https://blog.slepcevic.net/powershell-module-for-linode-akamai-connected-cloud/">Powershell module for Linode – Akamai Connected Cloud</a> first appeared on <a href="https://blog.slepcevic.net">Architect the cloud</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://blog.slepcevic.net/powershell-module-for-linode-akamai-connected-cloud/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: blog.slepcevic.net @ 2026-01-06 11:36:10 by W3 Total Cache
-->