First commit syntax checker

This commit is contained in:
surister 2019-12-20 18:11:43 +01:00
parent 5d1c2e0dfd
commit 051fea2c9b
9 changed files with 325 additions and 8 deletions

View File

@ -375,7 +375,7 @@ You can describe the UI way to add new slaves but better to explain how to do in
</b></details>
<details>
<summary>How would you implement an option of a starting a build from a certain stage and not from the beginning?<summary><br><b>
<summary>How would you implement an option of a starting a build from a certain stage and not from the beginning?</summary><br><b>
</b></details>
##### Jenkins Dev
@ -589,9 +589,11 @@ Stop the instance, the type of the instance to match the desired RAM and start t
<summary>What is AWS WAF? Give an example of how it can used and describe what resources or services you can use it with</summary><br><b>
</b></details>
<details>
<summary>What AWS VPN is usef for?</summary><br><b>
</b></details>
<details>
<summary>What is the difference between Site-to-Site VPN and Client VPN?</summary><br><b>
</b></details>
@ -927,7 +929,8 @@ As to fix it there are serveral options:
3. You would look for your distro default $PATH variable, copy paste using method #1
Note: There are many ways of getting errors like this: if bash_profile or any configuration file of your interpreter was wrongly modified; causing erratics behaviours,
permissions issues, bad compiled software (if you compiled it by yourself)... there is no answer that will be true 100% of the time.</b>
permissions issues, bad compiled software (if you compiled it by yourself)... there is no answer that will be true 100% of the time.
</b>
</p>
</details>
@ -1241,7 +1244,7 @@ execution or run forever
</b></details>
<details>
<summary>What signal is used by default when you run 'kill <process id>'?</summary><br><b>
<summary>What signal is used by default when you run 'kill *process id*'?</summary><br><b>
<pre>
The default signal is SIGTERM (15). This signal kills
process gracefully which means it allows it to save current
@ -1310,7 +1313,7 @@ You can also try closing/terminating the parent process. This will make the zomb
</b></details>
<details>
<summary>Can you explain how network process/connection is established and how it's terminated?><br></b>
<summary>Can you explain how network process/connection is established and how it's terminated?></summary><br></b>
</b></details>
<details>
@ -2299,7 +2302,7 @@ Setting the replicas to 0 will shut down the process. Now start it with `kubectl
</b></details>
<details>
<summary>Explain recursion</summary<br><b>
<summary>Explain recursion</summary><br><b>
</b></details>
<details>
@ -3130,7 +3133,7 @@ a = f()
</b></details>
<details>
<summary>Can you implement Linked List in Python?<br><b>
<summary>Can you implement Linked List in Python?</summary><br><b>
</b></details>
<details>
@ -3962,7 +3965,7 @@ the pseudo table to retrieve the sum of the prices spent by each customer, then
</b></details>
<details>
<summmary>Describe in detail how you bring up an instance with an IP you can reach from outside the cloud</summary><br><b>
<summary>Describe in detail how you bring up an instance with an IP you can reach from outside the cloud</summary><br><b>
</b></details>
<details>

View File

@ -2,9 +2,10 @@
import random
rand_num_li = sorted([random.randint(1, 50) for iter in range(10)])
rand_num_li = sorted([random.randint(1, 50) for _ in range(10)])
target = random.randint(1, 50)
def binary_search(li, le, ri, target):
if le <= ri:
mid = ri + le // 2

91
scripts/main.py Normal file
View File

@ -0,0 +1,91 @@
import pathlib
p = pathlib.Path(__file__).parent.parent.joinpath('README.md')
with open(p, 'rb') as f:
file_list = [line.rstrip() for line in f.readlines()]
details_final_count = 0
details_count = 0
print(len(file_list))
for q in file_list:
if b'<details>' in q:
details_count += 1
if b'</details>' in q:
details_final_count += 1
print(details_count, details_final_count)
# TODO Checkear que tenemos mismo numero de details tabs, aunque esto no asegura al 100% que esta bien formateado.
# Una vez que tenemos un número par, podemos más o menos estar seguros de que la cosa va bien, y hacer ya entonces
# el checkeo de las demás tags.
# Problema: No obtenemos el lugar de donde esta mal el details, entonces; hacerlo.
# IDEA: comprobar que despues de un detail va un /detail y mas o menos supongo que podremos acotar, hacer pruebas.
def get_question_list(f):
questions_list = []
temp = []
after_summary_tag = False
for line in f:
if line.startswith(b'<details>'):
temp.append(line)
after_summary_tag = True
elif after_summary_tag and line != b'' and b'</details>' not in line:
temp.append(line)
elif after_summary_tag and b'</details>' in line:
temp.append(line)
after_summary_tag = False
questions_list.append(temp)
temp = []
return questions_list
def get_answered_questions(question_list) -> int:
c = 0
for q in question_list:
index = 0
for i in q:
if b'</summary>' in i:
index = q.index(i)
if q[index+1: len(q) - 1]:
# print(q[2: len(q) - 1], '-->', q)
c += 1
return c
def check_even_tags(question_list):
summary_count = 0
details_count = 0
# details count not necessary cus we already have that checked beforehand
for q in question_list:
print(q)
for l in q:
print(l)
if b'<details>' in l:
details_count += 1
if b'<summary>' in l:
summary_count += 1
if b'</details>' in l:
details_count += 1
if b'</summary>' in l:
summary_count += 1
print(summary_count, details_count)
if summary_count != 2 or details_count != 2:
raise Exception(f'You are missing a tag in {q}')
details_count = 0
summary_count = 0
# check_even_tags(get_question_list(file_list))
# if __name__ == '__main__':
# q_list = get_question_list(file_list)
# print(len(q_list))
# print(get_answered_questions(q_list))

29
scripts/tests/test.py Normal file
View File

@ -0,0 +1,29 @@
import unittest
import pathlib
from scripts.main import get_answered_questions, get_question_list
def open_test_case_file(n: int):
p = pathlib.Path(rf'D:\PycharmProjects\devops-interview-questions\scripts\tests\testcase{n}.md')
with open(p, 'rb') as f:
file_list = [line.rstrip() for line in f.readlines()]
return file_list
class QuestionCount(unittest.TestCase):
solutions = (
)
def test_count_case_1(self):
raw_list = open_test_case_file(1)
question_list = get_question_list(raw_list)
answers = get_answered_questions(question_list)
self.assertEqual(len(question_list), 21)
self.assertEqual(answers, 2)
def test_count_case_2(self):
pass

101
scripts/tests/testcase1.md Normal file
View File

@ -0,0 +1,101 @@
<details>
<summary>What objects in S3 consists of?
* Another way to ask it: explain key, value, version id and meta data in context of objects</summary><br><b>
</b></details>
<details>
<summary>Explain data consistency</summary><br><b>
</b></details>
<details>
<summary>Can you host dynamic websites on S3?. What about static websites?</summary><br><b>
</b></details>
<details>
<summary>What security measures have you taken in context of S3?</summary><br><b>
</b></details>
<details>
<summary>What is a storage class? What storage classes are you familiar with?</summary><br><b>
</b></details>
##### EC2
<details>
<summary>What is EC2? What is it used for?</summary><br><b>
</b></details>
<details>
<summary>What EC2 pricing models are there?</summary><br><b>
</b></details>
<details>
<summary>How to increase RAM for a given EC2 instance?</summary><br><b>
Stop the instance, the type of the instance to match the desired RAM and start the instance.
</b></details>
<details>
<summary>What is an AMI?</summary><br><b>
</b></details>
<details>
<summary>How many storage options are there for EC2 Instances?</summary><br><b>
</b></details>
<details>
<summary>What happens when an EC2 instance is stopped or terminated?</summary><br><b>
</b></details>
<details>
<summary>What are Security Groups?</summary><br><b>
</b></details>
<details>
<summary>How to migrate an instance to another availability zone?</summary><br><b>
</b></details>
<details>
<summary>What are spot instances?</summary><br><b>
</b></details>
##### CloudFront
<details>
<summary>Explain what is CloudFront and what is it used for</summary><br><b>
</b></details>
<details>
<summary>Explain the following
* Origin
* Edge location
* Distribution</summary><br><b>
</b></details>
<details>
<summary>What delivery methods available for the user with CDN?</summary><br><b>
</b></details>
<details>
<summary>True or False?. Objects are cached for the life of TTL</summary><br><b>
</b></details>
##### Load Balancers
<details>
<summary>What types of load balancers are supported in EC2 and what are they used for?</summary><br><b>
* Application LB - layer 7 traffic
* Network LB - ultra-high performances or static IP address
* Classic LB - low costs, good for test or dev environments
</b></details>
##### AWS Security
<details>
<summary>What is the shared responsibility model? In other words, what AWS is responsible for and what the user is responsible for in regards to Security?</summary><br><b>
</b></details>
<details>
<summary>What is the AWS compliance program?</summary><br><b>
</b></details>

View File

@ -0,0 +1,92 @@
<details>
<summary>Explain what each of the following services is used for
* AWS Inspector
* AWS Artifact
* AWS Shield</summary><br><b>
</b></details>
<details>
<summary>What is AWS WAF? Give an example of how it can used and describe what resources or services you can use it with</summary><br><b>
</b></details>
<details>
<summary>What AWS VPN is usef for?</summary><br><b>
</b></details>
<details>
<summary>What is the difference between Site-to-Site VPN and Client VPN?</summary><br><b>
</b></details>
<details>
<summary>True or False? AWS Inspector can perform both network and host assessments</summary><br><b>
True
</b></details>
#### AWS Databases
<details>
<summary>What is RDS?</summary><br><b>
</b></details>
<details>
<summary>What are some features or benefits of using RDS?</summary><br><b>
1. Multi AZ - great for Disaster Recovery
2. Read Replicas - for better performances
</b></details>
<details>
<summary>What is EBS?</summary><br><b>
</b></details>
#### AWS Networking
<details>
<summary>What is VPC?</summary><br><b>
</b></details>
<details>
<summary>Explain Security Groups and Network ACLs</summary><br><b>
</b></details>
#### Misc
<details>
<summary>Explain what are the following services and give an use case example for each one them:
* CloudTrail
* CloudWatch
* CloudSearch</summary><br><b>
</b></details>
## Network
<a name="network-beginner"></a>
#### :baby: Beginner
<details>
<summary>What is Ethernet?</summary><br><b>
</b></details>
<details>
<summary>What is a MAC address? What is it used for?</summary><br><b>
</b></details>
<details>
<summary>When is this MAC address used?: ff:ff:ff:ff:ff:ff</summary><br><b>
</b></details>
<details>
<summary>What is an IP address?</summary><br><b>
</b></details>
<details>
<summary>Explain subnet mask and given an example</summary><br><b>
</b></details>
<details>
<summary>What is a private IP address? What do we need it for?</summary><br><b>
</b></details>

View File

View File

View File