def main(): css_class = 'support' page = Html5(css_class, 'HowTo use the exam user interface (UI)') page.add(htmltags.p[ 'TODO: Describe how the PSI/Hatsize user interface works for the examinee', ],) page.render(PAGE_UI)
def main(): css_class = 'support' page = Html5(css_class, 'HowTo use BASH') page.add(htmltags.p[ 'TODO: Describe how to use BASH command-line completion, editing, and history', ],) page.render(PAGE_BASH)
def main(): css_class = 'support' page = Html5(css_class, 'HowTo use SSH') page.add( htmltags.p[ 'TODO: Describe how the examinee should use ', literal('ssh'), ' to access the various machines within the exam environment.'], ) page.render(PAGE_SSH)
def main(): css_class = 'support' page = Html5(css_class, 'HowTo manage keyboard focus') page.add( htmltags. p['''TODO: Describe how keyboard focus is managed within the exam environment by clicking the mouse on the containing windows. Note that there are several machine windows available within the exam environment presented within your local web browser.''', ], ) page.add( htmltags. p['''TODO: Describe how managing keyboard focus is mostly unnecessary because the exam can be easily completed from the client machine using its web browser and shell windows.''', ], ) page.render(PAGE_FOCUS)
def main(): css_class = 'support' page = Html5(css_class, 'Why some tasks undo others') page.add( htmltags. p['''TODO: Describe how the exam is constrained to execute tasks mostly in order, because we are managing a database which is inherently stateful.''', ], ) page.add( htmltags. p['''TODO: Describe how the system/database administrator role routinely involves doing and undoing changes to systems/databases as deployment needs shift over time. This exam involves such changes over a much more significant timeframe than just the few hours of exam duration.''', ], ) page.render(PAGE_UNDO)
def main(): css_class = 'support' page = Html5(css_class, 'Exam overview') page.add(htmltags.p[ 'TODO: Describe the exam and its environment, with links to all the other pages.', ]) page.add(htmltags.h3(css_class)['Essential content']) page.add(htmltags.p[ '''These pages provide essential content that you will need. They will help you to understand the exam and the machines that constitute the exam environment. You ''', emphasis('SHOULD'), ' read these pages ', emphasis('BEFORE'), ' you begin the exam tasks.', ]) page.add( htmltags.ul(css_class) [htmltags.li[link(css_class, PAGE_MACHINE, 'machine naming conventions' )], htmltags. li[link(css_class, PAGE_SSH, 'HowTo: access other exam machines')], htmltags. li[link(css_class, PAGE_SUDO, 'HowTo: gain superuser privileges')], htmltags.li[link(css_class, PAGE_DOC_4_6, 'Documentation for Couchbase Server 4.6')], ]) page.add(htmltags.h3(css_class)['Main tasks']) page.add(htmltags.p[ link(css_class, './main/index.html', 'Main tasks'), ' for you to perform as part of your exam. You ', emphasis('MUST'), ''' complete these tasks. You will be scored based on your success at completing each of these tasks.''', ]) page.add(htmltags.h3(css_class)['Initial tasks']) page.add(htmltags.p[ link(css_class, './init/index.html', 'Initial tasks'), ' already performed to setup the exam environment. You do ', emphasis('NOT'), ''' complete these tasks. These tasks were performed automatically before you arrived to take this exam.''', ]) page.add(htmltags.h3(css_class)['Supporting content']) page.add(htmltags.ul[ htmltags.li[link(css_class, PAGE_UI, 'HowTo: understand the exam user interface (UI)')], htmltags.li[link(css_class, PAGE_SESSION, 'HowTo: begin/end your exam session')], htmltags. li[link(css_class, PAGE_FOCUS, 'HowTo: manage keyboard focus')], htmltags.li[link(css_class, PAGE_CUT_AND_PASTE, 'HowTo: cut and paste' )], htmltags.li[link(css_class, PAGE_BASH, 'HowTo: leverage BASH')], htmltags.li[link(css_class, PAGE_UNDO, 'Why: do and then undo tasks' )], ]) page.render(PAGE_OVERVIEW)
def main(): username = get_machine_username() css_class = 'support' page = Html5(css_class, 'HowTo be superuser') page.add( htmltags. p['TODO: Describe how the examinee should follow the best practice of ', emphasis('rarely-to-never'), ' using the ', literal('root'), ' account directly to exercise superuser privileges.', ], ) page.add( htmltags.p['TODO: Describe how the examinee should use their own ', literal(username), ' account throughout the exam.', ], ) page.add( htmltags. p['TODO: Describe how the examinee should use ', literal('sudo'), ' during the exam to gain superuser privileges, rather than attempting to login as ', literal('root'), '.', ], ) page.render(PAGE_SUDO)
def main(): host_client = get_host_client() try: hosts_server = get_hosts_server() except: hosts_server = None css_class = 'support' page = Html5(css_class, 'Machine naming conventions') if hosts_server is None: page.add( htmltags. p['The machines of the exam environment are named according to ', link(css_class, PAGE_EXAMPLE_COM, 'Internet standards'), ' for such systems. Specifically, the client machine is named ', literal(host_client), """. This is the machine's Fully-Qualified Domain Names (FQDNs). It can also be referenced locally by its simple name prefix.""", ], ) else: page.add( htmltags. p['The machines of the exam environment are named according to ', link(css_class, PAGE_EXAMPLE_COM, 'Internet standards'), ' for such systems. Specifically, the client machine is named ', literal(host_client), ' and the servers are named ', literal_list(hosts_server), """. These are the machines' Fully-Qualified Domain Names (FQDNs). They can also be referenced locally by their simple name prefixes.""", ], ) page.add( htmltags.p['You can ', link(css_class, PAGE_SSH, 'use SSH'), ' to access the servers within your exam environment.', ], ) page.add( htmltags. p['''When adding the servers as nodes in a Couchbase cluster, please remember that they must be referenced using their Fully-Qualified Domain Names (FQDNs) within the Couchbase software.''', ], ) page.render(PAGE_MACHINE)
def main(): css_class = 'support' page = Html5(css_class, 'HowTo cut-and-paste') page.add(htmltags.p[ 'TODO: Describe how cut-and-paste is constrained within exam environment.', ],) page.add(htmltags.p[ '''TODO: Cut-and-paste is forbidden and blocked into and out of the exam environment, so as to protect the integrity of the exam.''', ],) page.add(htmltags.p[ 'TODO: Cut-and-paste does not work ', emphasis('ACROSS'), ' machines, but only ', emphasis('WITHIN'), ' individual machines. Cut-and-paste is an application or operating-system function.', ],) page.add(htmltags.p[ '''TODO: Cut-and-paste is mostly unnecessary for a system administrator since they routinely make use of appropriate features of such tools as BASH and SSH. The entire exam can be completed using the web browser and terminal of the client machine, without directly logging in to any of the server consoles (use SSH from a client shell instead).''', ],) page.render(PAGE_CUT_AND_PASTE)
def main(): css_class = 'support' page = Html5(css_class, 'HowTo begin and end your exam session') page.add( htmltags.p['TODO: Describe how the exam session begins and ends', ], ) page.render(PAGE_SESSION)